在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会生成未损坏的项目。