Django – “no module named django.core.management”
尝试从命令行运行Django时出现以下错误。
File manage.py, line 8, in <module> from django.core.management import execute_from_command_line ImportError: No module named django.core.management
任何想法如何解决这个问题?
这听起来像你没有安装Django。 你应该检查这个命令产生的目录:
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
看看你有没有在那里的Django包。
如果站点包内没有django文件夹,那么你没有安装django(至less对于那个版本的python)。
你可能安装了不止一个版本的python,而django是在另外一个版本里面的。 你可以findpython的所有版本,如果你键入python
然后按Tab键。 这里是我有的所有不同的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()"
如果你碰巧findpython2.6里面的django,试试你的原始命令
python2.6 manage.py ...
我得到了同样的错误,我以这种方式修复它:
我必须使用以下命令激活我的虚拟环境
source python2.7/bin/activate
sudo pip install django --upgrade
为我做了诡计。
大部分可能在你的manage.py
,第一行以!/usr/bin/python
开头,这意味着你使用的是系统全局python而不是你的虚拟环境中的。
所以更换
/usr/bin/python
同
~/projectpath/venv/bin/python
你应该很好。
好吧,我今天在安装virtualenv和django后面临同样的错误。 对我来说,我曾经用sudo( sudo pip install django )来安装django,而我试图运行没有sudo的manage.py runserver 。 我刚刚添加sudo,它的工作。 🙂
你是否在虚拟环境中使用虚拟包装? 你在Mac吗?
如果是这样的话:
在命令行中input以下内容来启动虚拟环境,然后进行处理
1.)
source virtualenvwrapper.sh
要么
source /usr/local/bin/virtualenvwrapper.sh
2.)
workon [environment name]
注意(从一个新手) – 不要放在你的环境名称括号
当您的计算机上未安装django时,会发生此问题。 当没有安装django这意味着django.core.management模块也没有安装。 所以它没有find这个模块,它给出了错误。
为了解决这个问题,我们应该使用pip来安装django。 打开命令行cmd(在窗口中)并键入as
pip install django
这个命令会在你的电脑上安装django。 如果你没有安装点子。 你应该安装点子。 这里如何在windows上安装pip
好吧,所以这是这样的:
你已经创build了一个虚拟环境,django模块只属于那个环境。由于virtualenv将自己与其他所有东西隔离,所以你看到了这个。
通过这个进一步的帮助:
1.您可以切换到虚拟环境所在的目录,然后运行django模块。
2.另外,您可以通过运行pip或easy_install将django全局安装到您的python-> site-packages
命令使用pip:pip安装django
那么这样做:
导入django打印(django.get_version())(取决于你使用的是哪个版本的Python。这对于python 3+系列)
然后你可以运行这个:python manage.py runserver,并通过键入:localhost:8000来检查你的web浏览器,你应该看到django powered页面。
希望这可以帮助。
我在运行命令行时遇到同样的问题,
python manage.py startapp <app_name>
但是我的问题是我在虚拟环境中运行这个命令,所以只需要激活你的虚拟环境,然后再次运行命令 –
如果这有助于其他人…我有这个问题,因为我的virtualenv默认为python2.7,而我使用Ubuntu时使用Python3调用Django。
检查我的virtualenv正在使用哪个Python:
$ which python3 >> /usr/bin/python3
使用指定的python3创build新的virtualenv(使用virtualenv包装https://virtualenvwrapper.readthedocs.org/en/latest/ ):
$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME
pythonpath现在应该指向virtualenv python:
$ which python3 >> /home/user/.virtualenvs/ENV_NAME/bin/python3
我经历了同样的事情,这就是我所做的。
首先我的安装
pip install -r requirements.txt
不在我的活跃环境中。 所以我做的是激活我的环境,然后再次运行
pip install -r requirements.txt
这也会发生,如果你改变你的Python项目的目录结构(我这样做,然后困惑行为的变化)。 如果这样做,则需要在/ bin / activate文件中更改一行。 所以,说你的项目在
/User/me/CodeProjects/coolApp/
你的激活文件在
/User/me/CodeProjects/coolApp/venv/bin/activate
当你build立你的项目,然后你改变你的项目
/User/me/CodeProjects/v1-coolApp/
或者其他的东西。 您将需要打开
/User/me/CodeProjects/v1-coolApp/venv/bin/activate
find它说的地方
VIRTUAL_ENV="/User/me/CodeProjects/coolApp" export VIRTUAL_ENV
并将其更改为
VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"
在重新激活之前
就我而言,我使用的是Ubuntu。 问题可能是我没有像普通用户那样写入该文件夹的权限。 你可以简单地在你的命令之前添加sudo
,它应该完美地工作。 在我的情况下, sudo python manage.py syncdb
。
我有同样的问题,以下工作良好,您应该导航到您的项目中的主文件夹比input:
source bin/activate
有同样的问题。运行命令'python manage.py migrate'作为根。 工作正常的根访问(sudo python manage.py migrate)
我有同样的问题,我得到这个消息的原因是因为我做“manage.py runserver”,而做“python manage.py runserver”修复它。
我的情况我在Mac上使用pyCharm 5。 我也有这个问题,运行这个命令后,我的问题解决了
sudo pip install django --upgrade
在运行服务器之前,您必须先select您的项目,然后键入这个workon your_project_name
然后python manage.py runserver
你可以这样试试: python3 manage.py migrate
(make sur在src/
目录下)
您也可以尝试使用pip install -r requirements.txt
(在迁移之后键入ls
时,您会看到requirements.txt
文件
如果毕竟还是不行的话试试pip install django
希望能帮助到你
文件和目录所有权冲突将导致问题在这里。 确保项目下目录和文件的所有权属于当前用户。 (可以使用带有-R选项的chown命令来更改它们。)尝试重新运行命令:通过“First Django App”示例运行时,解决了这个问题:
python manage.py startapp polls
我得到了同样的问题,试图使用python manage.py runserver 。 在我的情况下,我只是使用sudo su 。 使用terminal作为根,并再次尝试一部分工作。 所以我使用python manage.py迁移命令,它解决了这个问题。