6

nt-tickets サブディレクトリではなくルートに settings.py ファイルを含む django アプリ ( https://github.com/wjdp/nt-tickets ) があります。wsgi.py と manage.py では、次の行が変更を反映するように変更されているため、これは正常に機能します。

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

展開に gunicorn を使用する予定で、問題が発生しています。Gunicorn はこの行を無視し、設定ファイルがnt_tickets.settings. 私はこのようにガンコーンを始めています:

gunicorn wsgi:application 

そしてこのエラーが発生します:

ImportError: Could not import settings 'nt_tickets.settings' (Is it on sys.path?): No module named nt_tickets.settings

コマンドの最後に置くと問題が解決することがわかりました--settings "settings"が、なぜこれをしなければならないのですか? 確かに wsgi.py に設定された環境変数で十分でしょうか? これはささいなことのように思えるかもしれませんが、私は同じことを繰り返さないようにしています。


完全なトレース:

2013-07-10 01:12:12 [29417] [ERROR] Error handling request
Traceback (most recent call last):
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 126, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 236, in __call__
    self.load_middleware()
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 45, in load_middleware
    for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/will/env/nt_tickets/local/lib/python2.7/site-packages/django/conf/__init__.py", line 134, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'nt_tickets.settings' (Is it on sys.path?): No module named nt_tickets.settings
4

3 に答える 3

4

私は同じ問題を抱えています。さらに悪いことに、同じ構造を持つ他のプロジェクトはうまく機能します。django は DJANGO_SETTINGS_MODULE パスを変更しないことがわかったので、wsgi.py で次のように設定しました: os.environ['DJANGO_SETTINGS_MODULE'] = "settings" 問題を修正できます。

于 2013-07-20T06:43:28.770 に答える
0

wsgi.pyファイルを django_project フォルダーから移動することで問題を解決しました。OP('nt_tickets.settings')で言及されているケースの場合。彼は wsgi.py ファイルをnt_ticketsフォルダの外に移動する必要があり、それでうまくいくはずです。

于 2014-11-28T05:50:04.330 に答える