django导入错误 – 没有名为core.management的模块
好的,我看到很多这些错误。 我已经尝试了所有我知道要做的事情,但还没有弄明白。
我正在开发运行python 2.5和Django 1.3的开发服务器。 解压缩tar.gz下载后,使用python setup.py install安装Django 1.3。
一切运作良好,我很less有需要运行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安装我仔细检查我的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']
path在那里,我甚至创build了/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
我也尝试创build一个新的项目,看看是否有任何问题,并得到相同的utils.version错误。
Side node:从#django的Unode帮助我了一下,在同一台机器上设置了virtualenv,并通过了错误,所以仍然不确定这个实际的安装是什么,但似乎不是在Django的项目,但在Django / python安装。
如果像我一样,你在虚拟环境中运行你的django,并得到这个错误,看看你的manage.py
。 第一行应该定义用于运行脚本的python可执行文件。 这应该是你的virtualenv的python的path,但是它有点像/ usr / bin / python,这是不一样的path,并且会使用全局python环境(和包将会丢失)。 只需将path更改到virtualenv中的python可执行文件path即可。
你也可以用#!/usr/bin/env python
replace你的shebang行。 这应该使用适当的python环境和解释器,只要你激活你的virtualenv(我假设你知道如何做到这一点)。
如果你是在virtualenv你需要激活它,然后才能运行./manage.py'命令'
source path/to/your/virtualenv/bin/activate
如果你在.bash_profile或.bashrc中configurationworkon
workon yourvirtualenvname
*请不要编辑您的manage.py文件也许作品是不正确的方式,可能会给你以后的错误
我有同样的问题,因为我是作为超级用户安装Django,因此不在我的virtualenv。 你不应该做sudo pip install Django
相反,这样安装它:
$ source ./bin/activate $ pip install Django
请用pip重新安装django:
sudo pip install --upgrade django==1.3
(将1.3replace为您的django版本)
众所周知,这是一个path问题。
我的自定义软件包的基础与/ etc / profile中设置的目录共享一个名称。 然而,对于networking服务器,这些软件包位于不同的位置。 所以我从我的$ PYTHONPATH中删除了违规的条目,很好走!
谢谢您的帮助。
这个问题的另一个可能的原因是,你的操作系统默认运行python3。
无论你明确做: python2 manage.py
或者编辑manage.py的shebang,如下所示:
#!/usr/bin/env python2
我试图在Raspberry Pi 2 (而不是 VM )上运行embedded式系统(当然使用django)时出现此错误,
运行这个:
sudo pip install Django
取得了诀窍!
- 以防万一使用Raspbian / Jessie的人得到这个
对我来说,我的服务器正在使用Python 2.4。 我只是查找了Python 2.7,它安装在我的服务器上,并创build了一个别名。
alias python=python2.7
如果您需要了解更多,我在这里find了解决scheme
你可能正在使用virtualenvwrapper 。 不要忘记通过运行select你的环境:
$ workon env_name
尝试改变你的第一行manage.py。
更改
#!/usr/bin/python
通过
#!/usr/bin/env python
当我尝试创build一个新的应用程序时,我遇到了同样的问题。 如果你写python manage.py startapp myapp
,那么它会查找usr / bin / python。 但是您需要位于您的虚拟envpath的 / bin目录中的这个“ python ”。 我通过提到virtualenv的pythonpath解决了这个问题:
<env path>/bin/python manage.py startapp myapp
解决了!
search了几个年龄并尝试了所有这些不起作用的其他build议之后,我终于find了解决scheme。
我的设置/场景:
- Windows,Python27
- 我的django项目通过svn检出
- 当在新文件夹中运行python manage.py runserver时,我得到了导入错误
- python manage.py运行服务器用于在原始文件夹(我将提交更改),直到我删除它
解
删除manage.py相同目录下名为django的文件夹
这是正确的…一旦我删除了只包含一个initt .py文件的文件夹“django”…我可以再次运行服务器!
不知道为什么
对于使用Django 1.6或更新版本的用户,请注意, execute_manager已被删除 。 第二个SO答案在这里有一个解决scheme。
将python pythonpath存储在一个variables中并执行。这将包括其他缺less的包。
python_path= `which python` $python_path manage.py runserver
我有一个类似的问题。 PyCharm无法运行服务器,但我可以从命令行运行它。 我尝试了哪个python,然后确保PyCharm是相同的解释器,然后一切正常。
这个错误通常发生在没有安装django的时候。 如果您已经安装了django,但仍然出现相同的错误,那么您必须在单独的虚拟环境中工作。 你也需要在你的虚拟环境中安装django。 当你在虚拟机的shell中,只需要这样做:
pip安装django
这是因为虚拟机具有单独的文件系统,即使安装在您的系统上也不会识别django。
我通过更改#PATH =“$ VIRTUAL_ENV / bin:$ PATH”到PATH =“$ PATH:$ VIRTUAL_ENV / bin”来解决这个问题。对于我来说不是很明显的原因,virtualenv目录中的python可执行文件没有看到django,而是正常安装python呢。
您的项目是使用比django1.3更早的旧版本django-admin.py创build的
修复这个创build另一个Django的项目,并复制它的manage.py并将其粘贴在旧的
完全同意,这是一个path问题,但是,我也有同样的错误。 这是由于在设置我的虚拟环境时为我的Python可执行文件使用相对path的错误。 我这样做了:
virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute
相反,我必须提供Python可执行文件的完整path。
HTH,Harlin
source〜/ blog-venv / bin / activate
select你的virtualenv来取代“blog-venv”。
确保你正在运行正确的Pythonpath实例。 在我的情况下,这个错误是由于意外运行python
可执行文件造成的 – 我实际上是在python2.7
框架和库下安装了Django。 virtualenv也可能发生同样的情况。
好吧,所以这是这样的:
你已经创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页面。
希望这可以帮助。
我在新发布的startapp命令之前的settings.py“INSTALLED_APPS”列表中包含了新应用程序的名称。 一旦我删除了列表条目,我可以创build应用程序。
我通过使用'django-admin'命令解决了这个问题:
django-admin startproject _project_name
只要删除附加到“django-admin”的“.py”
python3 manage.py runserver
检查Python的版本
所有的人都没有提到一个像我这样的人会安装django来安装virtualenv的情况…所以对于我所有的人来说,如果你这样做…在激活virtualenv之后重新安装django ..希望这可以帮助