Django startproject创建了破坏的项目

时间:2013-01-01 22:02:53

标签: python django django-admin django-1.4

在debian 6.0.6上使用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项目app目录,其中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会生成未损坏的项目。

0 个答案:

没有答案