1

私はPython/Django / Unixに慣れていないので、ご容赦ください。ローカル環境と本番環境で
異なるファイルを使用する方法を学んでいます。以下は、の公式Djangoドキュメントページのオプションsettings.pyに関するセクションからのものです。--settingsdjango-admin.py

--settings使用例:

django-admin.py syncdb --settings = mysite.settings

私のプロジェクトは次のように構成されています。

mysite
L manage.py 
L mysite
   L __init__.py  
   L local.py
   L urls.py
   L production.py 
   L wsgi.py

mysiteただし、親ディレクトリから次のコマンドを実行すると、

$ django-admin.py runserver --settings = mysite.local

次のエラーが発生します。

File "/Users/testuser/.virtualenvs/djdev/lib/python2.7/site-packages/django/conf/__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'mysite.local' (Is it on sys.path?): No module named mysite.local

PYTHONPATHWeb上のさまざまな記事で収集したことから、プロジェクトディレクトリパスをbashプロファイルの変数に追加する必要があると思います。これは正しい方法ですか?

編集:スラッシュをドットに変更しましたが、同じエラーが続きます。

4

2 に答える 2

2

フラグは、--settingsファイル システムの相対パスではなく、ドット付きの Python パスを取ります。

意味--settings=mysite/localは実際には--settings=mysite.local. を実行したときに現在の作業ディレクトリがプロジェクト ルートである場合はdjango-adminPYTHONPATH.

于 2013-02-20T07:46:30.363 に答える