У меня есть приложение django (https://github.com/wjdp/nt-tickets) с файлом settings.py в корневом каталоге, а не в подкаталоге nt-tickets. Это прекрасно работает как в wsgi.py и manage.py следующая строка была изменена, чтобы отразить изменение:Модуль настроек Gunicorn и django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
Я планирую использовать gunicorn для развертывания, и я бегу на вопрос. Gunicorn игнорирует эту строку и предполагает, что файл настроек будет nt_tickets.settings
. Я начинаю gunicorn как это:
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
проверьте файл 'manage.py'. Он все еще может иметь старые настройки – karthikr
, как упоминалось в вопросе 'manage.py' в порядке (https://raw.github.com/wjdp/nt-tickets/master/manage.py) – wjdp