django导入错误-没有名为core.management的模块


187

好的,我看到很多这些错误。我已经尝试了所有我想做的事情,但是还没有弄清楚。

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

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

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安装中,我再次检查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安装。


1
当您输入import djangopython shell 时会发生什么?
quiet1mezzo 2011年

@ silent1mezzo-Ahh忘了把它丢进去,Python外壳对django没什么抱怨
Grantk 2011年

1
你跑了python manage.py syncdb吗?
silent1mezzo 2011年

@silentmezzo-不在此计算机上,请在我的个人计算机上执行此操作,然后再移动项目。
Grantk 2011年

尝试先运行它。有时这可能会导致错误。
silent1mezzo

Answers:


169

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

您也可以用替换您的shebang线#!/usr/bin/env python。如果您首先激活了virtualenv,这应该使用适当的python环境和解释器(我假设您知道如何执行此操作)。


27
或像<path-to-my-env>/bin/python manage.py runserver
geekQ 2012年

发现得好!那正是问题所在!
kstratis 2012年

7
另外,呃...记得激活virtualenv。天哪!
Alex Mcp 2013年

无论如何,您可以在virtualenv中提供python可执行文件路径的示例。例如,我虚拟环境的路径是/ Users / Chris / virtualenv / my_first_venv,我进入了第一行#!/ Users / Chris / virtualenv / my_first_venv /,但是仍然出现相同的错误。我想我在Shebang上可能做错了什么
Chris

您可能忘记了在路径末尾添加python可执行文件:#!/Users/Chris/virtualenv/my_first_venv/bin/python或类似的东西?
史蒂夫·K

40

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

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

如果您在.bash_profile或.bashrc中配置workon

workon yourvirtualenvname

*请不要编辑您的manage.py文件,可能不是正确的方法,并且可能会给您将来的错误


在辛苦了半个晚上使它工作之后,这对我也是如此。非常感谢@ elin3t。
Yax 2014年

30

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

而是以这种方式安装它:

$ source ./bin/activate
$ pip install Django

但是如果没有sudo,您将得到:OSError:[Errno 13]权限被拒绝:'/opt
local/

15

请用pip重新安装django:

sudo pip install --upgrade django==1.3

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


25
不建议。使用sudo安装到系统目录将用本机软件包干扰,并且最有可能打破ATLEAST你的Python的某些部分安装。我建议virtualenv。
努法尔·易卜拉欣

11

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

我的自定义软件包的基础与/ etc / profile中设置的目录共享一个名称。软件包位于Web服务器的其他位置。因此,我从$ PYTHONPATH中删除了令人反感的条目,并且一切顺利!

谢谢您的帮助。


10

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

您必须明确地执行以下操作: python2 manage.py

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

#!/usr/bin/env python2

或者,如果您使用的是python3:

#!/usr/bin/env python3

对我来说,我必须做#!/usr/bin/env python2.7
Vic

8

而试图在运行嵌入式系统(当然使用Django的)我有这个错误树莓派2(并且不是一个VM

运行此:

 sudo pip install Django

搞定了!

  • 以防万一使用Raspbian / Jessie的人得到了这个

6

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

$ workon env_name

4

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

alias python=python2.7

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


4

尝试创建新应用时遇到了同样的问题。如果您编写python manage.py startapp myapp,则它将查找usr / bin / python。但是您需要这个“ python ”,它位于虚拟环境路径的/ bin目录中。我通过提及virtualenv的python路径来解决此问题,如下所示:

<env path>/bin/python manage.py startapp myapp

3

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

更改

#!/usr/bin/python

通过

#!/usr/bin/env python

3
反向帮助了我。取代#!/usr/bin/env python#!/usr/bin/python
curlyreggie

env是获取操作系统环境bin链接的常见unix bin,具体取决于OS配置或python安装,该bin可能位于与/ usr / bin /不同的路径中,并且您的解决方案将不起作用,如果'env'bin也无法使用安装在其他位置。
加布里埃尔·卡瓦坎特


3

解决了!!!

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

我的设置/方案:

  • Windows,Python27
  • 我的Django项目通过svn签出
  • 在新文件夹中运行python manage.py runserver时,出现导入错误
  • python manage.py runserver曾经在原始文件夹(我会提交更改)中使用,直到删除它为止

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

没错...删除文件夹“ django”后,该文件夹仅包含__init__.py文件...我可以再次运行服务器!

不知道为什么


因为包含__init__.py文件的文件夹被视为python模块。因此,您不应将隐含的模块目录命名为django
kaushal agrawal



1

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


1

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

pip安装Django

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


1

我通过将#PATH =“ $ VIRTUAL_ENV / bin:$ PATH”更改为PATH =“ $ PATH:$ VIRTUAL_ENV / bin”来解决此问题,由于对我不明显的原因,virtualenv目录中的python可执行文件看不到Django,但安装的Python呢。


1

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

首先转到: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

祝好运!!


0

您的项目是使用django1.3之前的旧版本django-admin.py创建的

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


@dontario。不是这个,我使用运行1.3.0 final的个人计算机创建了这个项目。有一些导入的项目是用较旧的版本创建的吗?
Grantk 2011年

我尝试将新的mange.py从新应用程序复制到同样使用的旧应用程序,但仍然出现相同的错误。
Grantk 2011年

0

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

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

相反,我不得不给出Python可执行文件的完整路径。

哈林HTH


0

来源〜/ blog-venv / bin / activate

在此处选择您的virtualenv替换“ blog-venv”。


谢谢,这解决了我的以下问题:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen 2013年

0

确保您在路径上使用正确的目录运行正确的Python实例。就我而言,此错误是python由偶然运行可执行文件引起的-我实际上是在python2.7框架和库下安装了Django 。由于virtualenv也可能发生相同的情况。


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

然后这样做:

导入django打印(django.get_version())(取决于您使用的python版本。这适用于python 3+系列)

然后您可以运行以下命令:python manage.py runserver并通过输入:localhost:8000在Web浏览器上进行检查,您应该看到django驱动的页面。

希望这可以帮助。


0

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


0

我通过使用'django-admin'命令来解决此问题,如下所示:

django-admin startproject _project_name

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



0

我之所以忘记了,是因为我忘记使用来安装Django pip -U,因此它仅适用于运行Django应用的用户。要运行manage.py我必须做

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py

-2

你们所有人都没有提到有人“像我”会在安装virtualenv之前安装django ...因此,对于所有此类人,如果这样做,...在激活virtualenv..i之后重新安装django。希望这可以帮助


这不是解决方案。这是Steve k提出的另一种解决方案的评论。
shanemgrey

这就是我发生的事情,这就是我如何解决的问题……任何初学者都可能会陷入一个错误
Dever
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.