OpenStack через NGINX+uWSGI

После этого не очень популярного вопроса: OpenStack & NGINX + uWSGI

Я начал строить свой узел панели инструментов, используя хорошо... NGINX и uWSGI, конечно, но сейчас я сталкиваюсь с проблемой пути.

Действительно, uWSGI правильно запускает процессы, и NGINX правильно подключен к нему.

НО, как только я пытаюсь получить главную страницу панели инструментов, NGINX выдает страницу 503 Error, и мой экземпляр uWSGI выдает мне это сообщение об ошибке:

ImportError: Не удалось импортировать настройки 'openstack_dashboard.settings' (это на sys.path?): Нет модуля с именем openstack_dashboard.settings

Это не полный стек, а основная часть его.

О себе, это просто вопрос PythonPath, но дело в том, что я не знаю, как решить эту проблему.

Действительно, теперь я знаю, что PythonPath является переменной env, и я уже установил такую ​​переменную для своего пользователя root:

export PYTHONPATH = '/ srv / www / openstack-dashboard /'

Теперь моя проблема в том, что кажется, что эта переменная env не обнаруживается или не используется python, потому что uWSGI продолжает аварийно завершать работу со следующим полным стеком:

Traceback (most recent call last):
   File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 219, in  __call__
self.load_middleware()
   File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
   for middleware_path in settings.MIDDLEWARE_CLASSES:
  File "/usr/lib/python2.7/dist-packages/django/utils/functional.py", line 184, in inner
self._setup()
  File "/usr/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
self._wrapped = Settings(settings_module)
  File "/usr/lib/python2.7/dist-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 'openstack_dashboard.settings' (Is it on sys.path?): No module named openstack_dashboard.settings

[pid: 31409|app: 0|req: 1/1] 172.21.150.91 () {36 vars in 556 bytes} [Mon Apr  8 11:02:35 2013] GET / => generated 0 bytes in 1 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)

Так что, если у кого-то есть ключ к решению этой проблемы, я буду рад прочитать его;-)

1 ответ

Решение

Вы должны потратить немного времени на понимание того, как работает pythonpath, это жизненно важно для освоения python (и, очевидно, django). Например, вы добавили /srv/www/openstack-dashboard/ в ваш pythonpath (я предполагаю, что вы установили переменную в нужном месте), поэтому при запросе openstack-dashboard.settings python будет искать / srv / www / openstack- Приборная панель / OpenStack-панель /settings.py. В дополнение к этому я предлагаю вам прочитать официальный uWSGI 'WSGI Quickstart', так как в нем рассказывается, как развертывать как старые, так и новые версии Django.

Другие вопросы по тегам