2012-12-23 142 views
82

尝试从命令行运行Django时出现以下错误。Django - “no module named django.core.management”

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

有关如何解决此问题的任何想法?

+0

你究竟想要运行什么,什么版本的Python,Django的版本等......? –

+0

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

回答

46

这听起来像你没有安装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 

可以为蟒蛇的每个版本做上述命令,并期待每个站点包目录里面看看其中是否已经安装的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的,尝试用

python2.6 manage.py ... 
+0

这是在命令“/usr/lib/python2.6/site-packages” – Krasimir

+0

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

+0

还有其他不是Django:D – Krasimir

-1

文件和目录的所有权相冲突原来的命令将在这里产生问题的Django。确保项目下目录和文件的所有权属于当前用户。通过“第一个Django应用程序”样品运行时,这解决了这个问题对我来说::(您可以使用带有-R选项chown命令更改。)尝试重新运行命令

python manage.py startapp polls 
27

我得到了同样的错误我固定它以这种方式:

我不得不使用下面的命令

source python2.7/bin/activate 
2

,如果你改变你的Python项目的目录结构也会发生这种情况(我这样做是为了激活我的虚拟环境,然后对行为变化感到困惑)。如果你这样做,你需要在你的/ bin/activate文件中改变一行。所以,说你的项目是在

/User/me/CodeProjects/coolApp/ 

和您的激活文件是在

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

,当你设置你的项目,那么你就改变了你的项目

/User/me/CodeProjects/v1-coolApp/ 

什么的。那么你就需要在你的manage.py第一复活

16

最大的可能是之前开

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

找到行的地方说

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

,并更改为

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

行以!/usr/bin/python开头,这意味着您正在使用sys而不是虚拟环境中的一个。

所以用

~/projectpath/venv/bin/python 

更换

/usr/bin/python 

,你应该是不错的。

+1

这对我来说工作得很好! –

10

您是否在虚拟环境中使用虚拟包装?你在Mac上吗?

如果是这样试试这个:

输入以下到您的命令行启动虚拟环境,然后解决它

1)

source virtualenvwrapper.sh 

source /usr/local/bin/virtualenvwrapper.sh 

2.)

workon [environment name] 

注意(从一个新手) - 不要把括号环境​​名

+0

我花了两秒钟才知道virtualenv没有启用,但这是我的问题...所以upvote,因为我打谷歌谷歌按钮一次,并没有读取任何出现。 – RobotHumans

4

好了,所以它是这样的:

您已经创建了一个虚拟的环境和Django的模块只属于那个环境。由于virtualenv将自己与其他事物隔离开来,所以你看到了这一点。

通过这个寻求进一步的帮助:

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

1.You可以切换到您的虚拟环境的存储目录,然后运行Django的模块。

2.Alternatively您可以通过运行PIP或使用PIP的easy_install

司令部在全球范围安装Django到您的python->站点包:PIP安装Django

然后做到这一点:

进口django print(django.get_version())(取决于你使用的是哪个版本的python。这适用于python 3+系列)

然后你可以运行这个:python manage。py runserver并通过键入localhost:8000来检查您的Web浏览器,您应该看到django powered页面。

希望这会有所帮助。

12

好吧,我今天在安装virtualenv和django后面临同样的错误。对我来说,我曾经使用sudo(sudo pip install django)来安装django,并且我试图运行manage.py runserver没有sudo。我只是添加了sudo,它工作。 :)

+0

保存我的日子(Y) –

3

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

检查的Python我的virtualenv使用:

$ which python3 
>> /usr/bin/python3 

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

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

Python路径现在应该指向的virtualenv蟒蛇:

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

就我而言,我使用的是Ubuntu 。问题可能是我没有像普通用户那样写入该文件夹的权限。您可以在命令前简单添加sudo,它应该完美地工作。在我的情况下sudo python manage.py syncdb

-1

我得到了同样的问题试图使用python manage.py runserver。在我的情况下,我只是使用sudo su。使用终端作为根,并再次尝试一部分工作。所以我使用python manage.py migrate命令,它修复它。

1

有同样的问题.run命令'python manage.py migrate'作为根。正常工作与根访问权限(sudo的蟒蛇manage.py迁移)

+1

这是一种治疗症状不是原因。 如果sudo工作,它可能是一个权限问题。 – evandentremont

4

我有在运行命令 -

python manage.py startapp < app_name >

但我的问题是,我是运行命令了虚拟环境的同样的问题所以只需先激活你的虚拟环境并再次运行命令 -

30
sudo pip install django --upgrade 

为我做了诡计。

+4

你的答案适合我,所以我给它一个upvote。然而,仅仅你的答案还不够,因为当我运行'sudo pip install django --upgrade'时,它给了我一个新的错误:'没有名为psycopg2的模块。所以,我运行'sudo pip install psycopg2 --upgrade',它实现了诀窍。 –

+2

原来我没有安装django ...尽管我之前在机器上使用过它。奇怪的。 – James111

+0

'--upgrade'为我工作,感谢一吨。 – WEshruth

1

我有同样的问题,我得到这个消息的原因是因为我做“manage.py runserver”,而做“python manage.py runserver”修复它。

+1

请注意,如果使用Python 3,它需要是“python3 manage.py runserver”。否则,导入错误仍然存​​在。 – rbaleksandar

+0

我做了manage.py运行服务器,它的工作原理! – alvaro562003

1

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

sudo pip install django --upgrade 
2

我有同样的问题,下面的工作不错,你应该在你的项目中导航主文件夹不是类型:

source bin/activate 
+0

...然后呢? – IIllIIll

+0

比: 'python manage.py runserver' – GoldFish

5

这当您的计算机上未安装django时会发生问题。当没有安装django这意味着django.core.management模块也没有安装。所以它没有找到这个模块,它给出了错误。
为了解决这个问题,我们应该使用pip来安装django。打开COMAND线CMD(在Windows上)和类型

pip install django 

此命令将在您的计算机安装Django。如果你没有安装点子。你应该安装点子。 Here how to install pip on windows

0

你必须选择你的第一个项目在运行服务器之前,键入此 workon your_project_name 然后 python manage.py runserver

3

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

首先我的

pip install -r requirements.txt

安装不上我的活动环境。所以我所做的就是激活我的环境,然后再次运行

pip install -r requirements.txt

0

,您可以尝试像这样:python3 manage.py migrate(让河畔是在src/目录)

您也可以用pip install -r requirements.txt试图(让河畔你看到requirements.txt文件时,你的迁移

如果毕竟它仍然无法正常工作后键入ls尝试pip install django

希望它可以帮助