1

在 debian 6.0.6 (squeeze) 上使用 pip 安装 Django 1.4.3 后django-admin.py startproject会创建损坏的项目。

$ django-admin.py startproject testproject
$ cd testproject
$ python manage.py shell
Error: Could not import settings 'settings' (Is it on sys.path?): No module named settings

似乎生成的项目采用平面结构(如 1.3 中),而它的格式类似于 1.4 项目(带有 testproject 项目应用程序目录,其中 settings.py 实际存在)。如果我做:

$ ln -s testproject/settings.py settings.py

python manage.py shell工作得很好,但我担心这个项目会以更深刻的方式被打破。

我已经尝试卸载并重新安装 django,并且我已经删除了我可以在系统上找到的所有其他版本的 django。

在python中直接导入django会得到以下结果:

>>> django.get_version()
'1.4.3'

什么可能导致这种行为,我将如何修复我的 Django 安装?

这就是我的 manage.py 中的内容:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testproject.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

django-admin.py 的位置:

$ which django-admin.py
/usr/local/bin/django-admin.py

我注意到这个 django-admin.py 与/usr/local/lib/python2.6/dist-packages/django/bin/. 在/usr/local/bin/用那个版本替换一个之后,问题仍然存在。


manage.py将行更改os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testproject.settings")os.environ["DJANGO_SETTINGS_MODULE"] = "testproject.settings". 这样做之后,我可以生成一个没有错误的 shell。

以相同的方式更改从中复制 manage.py 的模板(/usr/local/lib/python2.6/dist-packages/django/conf/project_template/manage.py在我的情况下)使 django-admin.py 生成未损坏的项目。

4

0 回答 0