3

免責事項: 私は python と django は初めてですが、Drupal プログラミングの経験があります。Windows 7 を使用しています (Windows XP でも同じ問題が発生します)。

Python 2.7 と Django-1.3.1 で、デフォルト プロジェクトの作成に成功しました

django-admin.py startproject djsite

次に、djsite の親ディレクトリにある bootstrap.py というファイルで、ここ (http://www.pyinstaller.org/wiki/Recipe/DjangoApplication) で説明されているように、djsite.manage を次のように「ブートストラップ」する必要があります。

import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

それでも、コンパイラが次のことを確認するとすぐに:

import djsite.manage

「エラー: 'C:\Python27\Lib\site-packages\djsite\manage.pyc' を含むディレクトリにファイル 'settings.py' が見つかりません。 . django-admin.py を実行して、設定モジュールを渡す必要があります。" そして、この状況でエラーのアドバイスに従う方法がわかりません。

ただし、代わりにbootstrap.pyで次を発行すると:

import os, sys
sys.path.append(os.path.abspath('djsite'))
import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

スクリプトは正しく動作しますが、Pyinstaller が壊れます (このソフトウェアのメーリング リスト (http://groups.google.com/group/pyinstaller/browse_thread/thread/174a72e26c26a44c) で既にこの質問をしました)。パスを追加してもPATH 変数の djsite にアクセスすると、同じエラーが発生します。

ここでの私の質問は次のとおりです: なぜこのアプローチで manage.py モジュールのインポートが失敗するのですか? どうすれば続行できますか? ありがとう!

4

1 に答える 1

2

これを bootstrap.py に追加して、設定ファイルの場所を通知してみてください。

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'djsite.settings'

これは、djsite が pythonpath にあると仮定します。つまり、ここにある場合: /path/to/my/djsite、これはあなたの pythonpath にあるはずです:/path/to/my

実際、最初からこれを行う最善の方法は、virtualenvを使用することです。これにより、環境が正しいことが保証されます。ブートストラップを覚えているなら、それはあなたのチュートリアルの一部でなければならなかったように感じます。virtualenv を使用している場合は、次のことを忘れないでください。source bin/activate

それでもうまくいかない場合は、runserver コマンドを変更してみてください。

args = ['manage.py', 'runserver', '--settings=/path/to/my/djsite/settings.py']
djsite.manage.execute_manager(djsite.manage.settings, args)
于 2012-02-25T18:05:13.897 に答える