197

好的,我看到很多这样的错误。我已经尝试了我所知道的一切,但还没有弄清楚。

我正在开发一个运行 python 2.5 和 Django 1.3 的开发服务器。解压 tar.gz 下载后,使用 python setup.py install 安装了 Django 1.3。

一切正常,我很少需要运行manage.py,但我正在尝试使用新的静态文件应用程序并遇到问题。

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

好的,所以我有PATH问题。

Django install我仔细检查我的site-packages目录。

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

好的,让我们看看我有什么,echo $PYTHON_PATH 是空的,所以我设置了它

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

仍然没有运气。让我们检查一下 sys.path 必须说什么

>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']

路径在那里,我什至用内容创建了 /usr/lib/python2.5/site-packages/django.pth

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

有人知道这里发生了什么吗?

我在阻碍路径的更远处找到了一个符号链接,但没有出现新的错误。

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
    version=get_version(),
  File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
    from django.utils.version import get_svn_revision
ImportError: No module named utils.version

我还尝试创建一个新项目以查看那里是否存在任何问题并得到相同的 utils.version 错误。

侧节点:来自#django 的 Unode 帮助了我一点,在同一台机器上设置 virtualenv 并克服了错误,所以仍然不确定这里实际安装的情况,但它似乎不在 django 项目中,而是在 django /python 安装。

4

32 回答 32

173

如果像我一样,您在 virtualenv 中运行 django 并收到此错误,请查看您的manage.py. 第一行应该定义用于运行脚本的 python 可执行文件。这应该是你的 virtualenv 的 python 的路径,但它是像 /usr/bin/python 这样的错误,它不是同一个路径,将使用全局 python 环境(并且包将丢失)。只需将路径更改为 virtualenv 中 python 可执行文件的路径即可。

您也可以将 shebang 行替换为#!/usr/bin/env python. 这应该使用正确的 python 环境和解释器,前提是您首先激活您的 virtualenv(我假设您知道如何执行此操作)。

于 2012-05-25T14:42:52.583 回答
41

如果您在 virtualenv 中,则需要先激活它,然后才能运行 ./manage.py 'command'

source path/to/your/virtualenv/bin/activate

如果您在 .bash_profile 或 .bashrc 中配置工作

workon yourvirtualenvname

*请不要编辑您的 manage.py 文件,这可能不是正确的方式,可能会给您未来的错误

于 2013-06-11T18:07:05.207 回答
31

我遇到了同样的问题,因为我将 Django 安装为超级用户,因此不在我的 virtualenv 中。你不应该做sudo pip install Django

相反,以这种方式安装它:

$ source ./bin/activate
$ pip install Django
于 2013-12-27T14:19:04.073 回答
18

请用 pip 重新安装 django:

sudo pip install --upgrade django==1.3

(将 1.3 替换为您的 django 版本)

于 2011-05-18T19:29:31.680 回答
13

众所周知,这是一个路径问题。

我的自定义包的基础与 /etc/profile 中设置的目录共享一个名称。但是对于网络服务器,这些软件包位于不同的位置。所以我从我的 $PYTHONPATH 中删除了有问题的条目,一切顺利!

谢谢您的帮助。

于 2011-05-19T14:08:05.887 回答
10

此问题的另一个可能原因是您的操作系统默认运行 python3。

要么你必须明确地做:python2 manage.py

或者您需要编辑 的 shebang manage.py,如下所示:

#!/usr/bin/env python2

或者如果您使用的是 python3:

#!/usr/bin/env python3
于 2012-09-20T12:04:35.993 回答
8

尝试在Raspberry Pi 2(而不是VM)上运行嵌入式系统(当然使用 django)时出现此错误

运行这个:

 sudo pip install Django

成功了!

  • 以防万一使用Raspbian/Jessie的人得到这个
于 2016-06-02T01:56:14.160 回答
7

您可能正在使用virtualenvwrapper。不要忘记通过运行选择您的环境:

$ workon env_name
于 2015-03-31T10:02:13.620 回答
5
python3 manage.py runserver

检查 Python 的版本

于 2017-07-30T10:56:24.000 回答
4

对我来说,我的服务器使用的是 Python 2.4。我只是查找了安装在我的服务器上的 Python 2.7,并创建了一个别名。

alias python=python2.7

如果您需要了解更多信息,我在这里找到了解决方案

于 2012-08-11T22:45:41.393 回答
4

我在尝试创建新应用程序时遇到了同样的问题。如果你写python manage.py startapp myapp,那么它会寻找 usr/bin/python。但是你需要这个“ python ”,它位于你的虚拟环境路径的/bin目录中。我通过提到 virtualenv 的 python 路径来解决这个问题,就像这样:

<env path>/bin/python manage.py startapp myapp
于 2014-01-22T18:48:53.963 回答
4

解决了!!!

在搜索了年龄并尝试了所有其他不起作用的建议之后,我终于找到了适合我的设置的解决方案。

我的设置/场景:

  • 视窗,Python27
  • 我的 django 项目通过 svn 签出
  • 在新文件夹中运行python manage.py runserver时,出现导入错误
  • python manage.py runserver曾经在原始文件夹中工作(我会从中提交更改),直到我将其删除

解决方案

删除manage.py同一目录下所有名为django的文件夹

没错...一旦我删除了仅包含__init__.py文件的文件夹“django”...我可以再次运行服务器!

不知道为什么

于 2016-03-28T09:57:04.900 回答
3

尝试更改 manage.py 的第一行。

改变

#!/usr/bin/python

经过

#!/usr/bin/env python
于 2013-01-17T13:51:22.490 回答
2

对于那些使用 Django 1.6 或更高版本的人,请注意execute_manager 已删除这里的第二个 SO 答案中发布了一个解决方案。

于 2014-01-17T20:25:07.347 回答
2

将 python python 路径存储在一个变量中并执行。这将包括否则丢失的包。

python_path= `which python` 
$python_path manage.py runserver
于 2015-07-13T05:51:10.013 回答
2

===================================解决方案=============== ===========================

首先转到:virtualenv

通过运行命令:source bin/activate

并安装 django,因为您收到与“import django”相关的错误:

pip install django

然后运行:

python manage.py runserver

(注:请将'runserver'改为你要运行的程序名)

对于同样的问题,它适用于我的情况。===================================剧情简介=============== ===========================

ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

安装 django 后:

(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.1MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 4.7MB/s 
Installing collected packages: pytz, django

解决后:

(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976

祝你好运!!

于 2018-08-05T04:56:17.640 回答
1

我有一个类似的问题。PyCharm 无法运行服务器,但我可以从命令行运行它。我尝试了 which python 然后确保 PyCharm 是同一个解释器,然后一切正常。

于 2012-01-17T22:45:47.790 回答
1

未安装 django 时通常会出现此错误。如果您已经安装了 django 但仍然遇到相同的错误,那么您必须在单独的虚拟环境中工作。您还需要在虚拟环境中安装 django。当您在虚拟机的外壳中时,只需执行以下操作:

点安装django

这是因为虚拟机有单独的文件系统,即使它安装在你的系统上,它也无法识别 django。

于 2014-05-14T07:40:22.467 回答
1

我通过将 #PATH="$VIRTUAL_ENV/bin:$PATH" 更改为 PATH="$PATH:$VIRTUAL_ENV/bin" 解决了这个问题由于对我来说并不明显的原因,virtualenv 目录中的 python 可执行文件看不到 django,但通常安装的python可以。

于 2014-07-30T17:59:28.073 回答
1

只是一个错误 这也发生在我身上。我的错误是我在创建虚拟环境之前创建了 Django 项目,后来激活了环境并试图启动服务器。激活 env 后只需安装 Django 即可

于 2021-06-07T10:57:00.313 回答
1

环境Python 3.9.6,,,Django 3.2.6VS Code

只需禁用Pylance扩展并重新加载您的 VS Code。

于 2021-08-12T00:23:47.297 回答
0

您的项目是使用旧版本的 django-admin.py 创建的,比 django1.3 更早

要解决此问题,请创建另一个 django 项目并复制其 manage.py 并将其粘贴到旧项目中

于 2011-05-18T19:37:29.973 回答
0

完全同意这是一个路径问题,但fwiw,我有同样的错误。这是由于在设置我的虚拟环境时错误地为我的 Python 可执行文件使用了相对路径。我这样做了:

virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute

相反,我必须提供 Python 可执行文件的完整路径。

HTH,哈林

于 2013-04-03T14:00:31.990 回答
0

来源 ~/blog-venv/bin/activate

在这里选择你的 virtualenv 来替换“blog-venv”。

于 2013-04-22T02:12:54.167 回答
0

确保您正在运行正确的 Python 实例,并且路径上有正确的目录。在我的情况下,这个错误是由于python意外运行可执行文件造成的——我实际上已经在python2.7框架和库下安装了 Django。由于 virtualenv 也可能发生同样的情况。

于 2013-10-10T17:00:36.147 回答
0

好的,它是这样的:

您已经创建了一个虚拟环境,而 django 模块仅属于该环境。由于 virtualenv 将自己与其他一切隔离开来,因此您看到了这一点。

通过这个以获得进一步的帮助:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

1.可以切换到你的虚拟环境所在的目录,然后运行django模块。

2.或者,您可以通过运行 pip 或 easy_install 将 django 全局安装到您的 python->site-packages

使用 pip 的命令: pip install django

然后这样做:

import django print (django.get_version()) (取决于你使用的python版本。这适用于python 3+系列)

然后你可以运行这个:python manage.py runserver 并通过输入 :localhost:8000 检查你的网络浏览器,你应该会看到 django 驱动的页面。

希望这可以帮助。

于 2014-05-03T10:22:23.543 回答
0

在我发出 startapp 命令之前,我将新应用程序的名称包含在 settings.py 中的 INSTALLED_APPS 列表中。删除列表条目后,我可以创建应用程序。

于 2015-12-09T19:23:48.257 回答
0

我通过使用“django-admin”命令解决了这个问题,如下所示:

django-admin startproject _project_name

只需删除附加到“django-admin”的“.py”

于 2016-12-23T09:52:05.110 回答
0

调用应用程序site也可以重现此问题。

于 2018-07-11T16:04:01.143 回答
0

我之所以得到这个是因为忘记了我使用 安装了 Django pip -U,所以它只对运行我的 Django 应用程序的用户可用。要运行 manage.py 我必须这样做

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py
于 2019-07-14T20:27:44.983 回答
0

那是解释器错误。

如果您使用的是vscode,则只需按照以下步骤操作:

  • 看法
  • 命令面板
  • 搜索python
  • 选择口译员
  • 选择windows 商店,您的问题将得到解决,几秒钟后错误消失了。

由于路径更改,会出现此问题。

于 2021-12-23T13:12:53.473 回答
-2

你们所有人都没有提到“像我一样”的人会在安装 virtualenv 之前安装 django 的情况……所以对于我这样的所有人来说,如果你这样做了……在激活 virtualenv 后重新安装 django ..i希望这可以帮助

于 2016-01-27T19:27:53.273 回答