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 プロジェクトのようにフォーマットされています (settings.py が実際にある testproject プロジェクト app ディレクトリを使用)。私が行った場合:
$ 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"
同じ方法で manage.py のコピー元のテンプレートを変更すると (/usr/local/lib/python2.6/dist-packages/django/conf/project_template/manage.py
私の場合)、django-admin.py は壊れていないプロジェクトを生成します。