Django-“没有名为django.core.management的模块”


104

尝试从命令行运行Django时出现以下错误。

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

关于如何解决这个问题的任何想法?


您到底想运行什么,什么版本的Python,什么版本的Django等...?
乔恩·克莱门茨

我的本地主机的版本是Python 2.6.6和1.4.3 Dyango。Python服务器是2.6.6,对于Dyango无法检查,是否知道如何检查?
Krasimir 2012年

在尝试进行迁移时,我随机出现此错误,并且我处于安装了Django的虚拟环境中。我只是简单地再次运行了命令,它就起作用了。
aalaap '19

我有同样的错误。我已经安装了django,但是我将它安装在dist-packages目录中。Dockerfile使用ubuntu基本映像。所以我更新了Dockerfile来添加此文件,ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"但它仍然没有加载django应用程序。
alltej

Answers:


55

听起来您没有安装django。您应该检查此命令生成的目录:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

看那里是否有django软件包。

如果站点软件包中没有django文件夹,则说明您没有安装django(至少对于该版本的python)。

可能您安装了多个版本的python,而django位于另一版本中。如果键入python然后按TAB键,则可以找出python的所有版本。这是我拥有的所有不同的python。

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

您可以对每个python版本执行上述命令,并查看每个版本的site-packages目录以查看其中是否安装了django。例如:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

如果您碰巧在python2.6中找到django,请尝试使用以下原始命令

python2.6 manage.py ...

这就是命令“ /usr/lib/python2.6/site-packages”之后的内容
Krasimir 2012年

进入文件夹“ /usr/lib/python2.6/site-packages”,看看里面是否有一个名为django的文件夹。
RaviU

Evrything not Django:D
Krasimir

嗨,请检查我编辑的答案。也许您的django在另一个版本的python中。
RaviU

1
如果使用virtualenv或在虚拟环境中安装了django,则必须在虚拟环境中运行它,除非已将其全局安装在系统中。
拉蒙·苏亚雷斯

41
sudo pip install django --upgrade 

为我做了把戏。


4
您的回答对我有用,所以我给了它一个赞。但是,仅您的答案是不够的,因为当我运行sudo pip install django --upgrade它时,给了我一个新的错误:No module named psycopg2。因此,我跑步了sudo pip install psycopg2 --upgrade,就成功了。
Dorian Dore 2015年

2
原来我没有安装django ...即使我以前在机器上使用过它也是如此。奇怪的。
James111 2015年

我遇到了超时问题,所以我做到了sudo pip install --default-timeout=100 django --upgrade,一切都进展顺利。
Zap

如果您使用“ pyenv”,则需要以下各项:pip install django --upgrade --user
Inyoka,

30

我遇到了相同的错误,并以这种方式修复了该错误:

我必须使用以下命令激活我的虚拟环境

source python2.7/bin/activate

22

manage.py第一行很可能以!/usr/bin/python它开头,这意味着您正在使用系统全局python,而不是虚拟环境中的python。

所以更换

/usr/bin/python

~/projectpath/venv/bin/python

你应该很好


谢谢。它有帮助。
Serg Smyk

我的项目有一个bash脚本,该脚本调用了应用程序的一部分,并且在该bash脚本中,python startapp因此我不得不将其更改为/path/to/venv/bin/python startapp并且可以正常工作。谢谢你指出这一点!
Gordster

13

好吧,我在安装virtualenv和django之后今天遇到了同样的错误。对我来说,是我使用sudo(sudo pip install django)来安装django,而我试图在不使用sudo的情况下运行manage.py runserver。我刚刚添加了sudo,它起作用了。:)


10

您是否正在使用带有Virtual Wrapper的虚拟环境?您在Mac上吗?

如果是这样,请尝试以下操作:

在命令行中输入以下内容以启动虚拟环境,然后对其进行处理

1.)

source virtualenvwrapper.sh

要么

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

注意(来自新手)-请勿在您的环境名称前使用方括号


我花了大约两秒钟的时间才发现virtualenv没有启用,但这是我的问题...太赞了,因为我一次点击google的google按钮,却没有读取任何内容。
RobotHumans

7

我在执行命令时遇到同样的问题-

python manage.py startapp <应用程序名称>

但是我的问题是我在虚拟环境之外运行了该命令。因此,请先激活您的虚拟环境,然后再次运行该命令-


1
我的项目有一个bash脚本,该脚本调用了应用程序的一部分,并且在该bash脚本中,python startapp因此我不得不将其更改为/path/to/venv/bin/python startapp并且可以正常工作。
Gordster

5

当您的计算机上未安装django时,会发生此问题。如果未安装django,则意味着也未安装django.core.management模块。因此,它找不到此模块,并给出了错误。
为了解决这个问题,我们应该使用pip安装django。打开命令行cmd(在Windows上)并输入

pip install django

此命令将在您的计算机上安装django。如果您没有安装pip。你应该安装点子。这里如何在Windows上安装pip


5

我遇到同样的事情,这就是我所做的。

首先我的安装

点安装-r requirements.txt

不在我的活动环境中。所以我要做的是激活我的环境,然后再次运行

点安装-r requirements.txt


4

好的,它像这样:

您已经创建了一个虚拟环境,而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驱动的页面。

希望这可以帮助。


3

如果这对其他人有帮助...我有这个问题,因为我的virtualenv默认为python2.7,而我在使用Ubuntu时使用Python3调用Django。

检查我的virtualenv使用的是哪个python:

$ which python3
>> /usr/bin/python3

使用指定的python3创建了新的virtualenv(使用virtualenv包装器https://virtualenvwrapper.readthedocs.org/en/latest/):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME

python路径现在应该指向virtualenv python:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3

2

如果您更改python项目的目录结构,也会发生这种情况(我是这样做的,然后对行为的变化感到困惑)。如果这样做,则需要在/ bin / activate文件中更改一行。所以,说您的项目在

/User/me/CodeProjects/coolApp/

并且您的激活文件位于

/User/me/CodeProjects/coolApp/venv/bin/activate

设置项目时,将项目更改为

/User/me/CodeProjects/v1-coolApp/

或者其他的东西。然后,您需要打开

/User/me/CodeProjects/v1-coolApp/venv/bin/activate

找到它说的那一行

VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
export VIRTUAL_ENV

并将其更改为

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"

重新激活之前


2

就我而言,我正在使用Ubuntu。问题可能是我没有以普通用户身份写入该文件夹的权限。您只需sudo在命令前添加即可,它应该可以正常运行。就我而言sudo python manage.py syncdb


2

我有同样的问题,收到此消息的原因是因为我正在执行“ manage.py runserver”,而在执行“ python manage.py runserver”时已将其修复。


2
请注意,如果使用Python 3,则必须为python3 manage.py runserver。否则,导入错误仍然存​​在。
rbaleksandar '16

2

我遇到了同样的问题,下面的工作很好,您应该在项目中浏览主文件夹,而不要键入:

source bin/activate 


1

我的情况是在Mac上使用pyCharm 5。我也遇到这个问题,运行此命令后,我的问题解决了

sudo pip install django --upgrade 

1

您可以这样尝试:(python3 manage.py migrate使sur位于src/目录中)

您也可以尝试使用pip install -r requirements.txt(使您在迁移后输入requirements.txt时看到文件ls

如果毕竟还是不行,请尝试 pip install django

希望能帮助到你


0

您必须先选择项目,workon your_project_name 然后再运行服务器,然后 键入 python manage.py runserver


-1

文件和目录所有权冲突将在此处引起问题。确保项目下目录和文件的所有权属于当前用户。(您可以使用带有-R选项的chown命令来更改它们。)尝试重新运行该命令:这在通过“ First Django App”示例运行时为我解决了问题:

python manage.py startapp polls

-1

我在尝试使用python manage.py runserver时遇到了同样的问题。就我而言,我只使用sudo su。将终端机用作根用户,然后重试一次,可以部分使用。因此,我使用 python manage.py migration comand进行了修复。

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.