3

Gunicorn の下で、uWSGI に接続された既存の Django アプリ (実際には一連のアプリ) を実行しようとしています。uWSGI構成は次のとおりです。

[uwsgi]
plugins = python27

home = /var/www/uwsgi/webapp/app/venv
chdir = /var/www/uwsgi/webapp
chdir2 = /var/www/uwsgi/webapp/app
module = uwsgi_app

processes = 150
master = true

socket = 127.0.0.1:3031
socket-timeout = 300

env = DJANGO_SETTINGS_MODULE=settings

そして、このコマンドラインを使用しgunicornて実行しようとすると:/var/www/uwsgi/webapp

gunicorn_django --bind 127.0.0.1:9031 --access-logfile /tmp/gunicorn.log --error-logfile /tmp/gunicorn.err --workers=40

起動しますが、エラーログに次のように表示されます:

2013-09-19 08:17:16 [2981] [ERROR] Error handling request
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/sync.py", line 131, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 272, in __call__
    response = self.get_response(request)
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 82, in get_response
    urlconf = settings.ROOT_URLCONF
  File "/usr/lib/python2.7/dist-packages/django/utils/functional.py", line 277, in __getattr__
    return getattr(self._wrapped, name)
AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'

私の理解では、ミドルウェアは別々の urlconf を持つ複数のアプリ間でルーティングする必要があるため、ROOT_URLCONFインはありません。settings.pyしかし、それにgunicornは満足していないようです。私は何をすべきか?

4

1 に答える 1

0

わかりました。このアプリには 2 つの異なる設定のコピーがありました。1 つはsettings.py(未使用)、もう 1 つは./app/settings/*.py(本物) です。ソースを検索ROOT_URLCONFすると、実際の設定が隠されている場所が明らかになりました。

于 2013-09-19T14:33:00.333 に答える