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

2024-04-23 17:11:11 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我看到很多这样的错误。我已经尝试了所有我知道要做的事,但还没有弄清楚。

我正在开发一个运行Python2.5和Django1.3的开发服务器。Django 1.3是在解压缩tar.gz下载后使用python setup.py安装的。

一切正常,我很少需要运行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 install我再次检查我的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错误。

Side node:Unode from#django帮了我一点忙,在同一台机器上设置了virtualenv,并克服了错误,所以仍然不确定这里的实际安装是什么,但它似乎不在django项目中,而是在django/python安装中。


Tags: djangoinpyexecutegetmanageversionlib
3条回答

如果像我一样,你在virtualenv中运行django,并得到这个错误,请查看你的manage.py。 第一行应该定义用于运行脚本的python可执行文件。 这应该是virtualenv的python的路径,但它与/usr/bin/python类似,后者不是同一个路径,将使用全局python环境(包将丢失)。 只需将路径更改为virtualenv中python可执行文件的路径。

也可以用#!/usr/bin/env python替换shebang行。这应该使用正确的python环境和解释器,前提是您首先激活virtualenv(我假设您知道如何这样做)。

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

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

如果您在.bash_profile或.bashrc中配置工作

workon yourvirtualenvname

*请不要编辑manage.py文件,否则可能会出错

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

相反,请按以下方式安装:

$ source ./bin/activate
$ pip install Django

相关问题 更多 >