我看到很多这样的错误。我已经尝试了所有我知道的方法,但还是没有找到答案。

我正在一个运行python 2.5和Django 1.3的开发服务器上工作。Django 1.3是在解压tar.gz下载文件后使用python setup.py install安装的。

一切都很好,我很少需要运行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安装中,我仔细检查了我的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。路径会说

>>> 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。版本错误。

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


当前回答

请用pip重新安装django:

sudo pip install --upgrade django==1.3

(将1.3版本替换为django版本)

其他回答

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

你也可以用#!/usr/bin/env python。这应该使用适当的python环境和解释器,前提是您首先激活了virtualenv(我假设您知道如何做到这一点)。

我通过使用'django-admin'命令来解决这个问题,如下所示:

Django-admin startproject _project_name

只需删除“django-admin”附加的“。py”

它是这样的:

你已经创建了一个虚拟环境,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安装django

然后这样做:

进口django Print (django.get_version())(取决于你使用的python版本。适用于python 3+系列)

然后你可以运行这个: Python manage.py runserver 在浏览器中输入:localhost:8000进行检查 你应该会看到django powered page。

希望这能有所帮助。

在我发出startapp命令之前,我将新应用程序的名称包含在settings.py中的INSTALLED_APPS列表中。一旦我删除了列表条目,我就可以创建应用程序。

众所周知,这是一个路径问题。

我的自定义包的基础与/etc/profile中设置的目录共享一个名称然而,对于web服务器,这些包位于不同的位置。因此,我从$PYTHONPATH中删除了有问题的条目,一切就绪!

谢谢你的帮助。