Невозможно импортировать имя приложения с помощью uWSGI и NGINX - PullRequest
0 голосов
/ 29 ноября 2018

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

Я следовал этому учебнику по DigitalOcean, и яЯ также использовал несколько вопросов SO, и ничего не помогло.Если я запускаю uwsgi --socket 127.0.0.1:8080 --protocol=http --module wsgi --callable app, единственная полезная трассировка, которую я могу получить, это:

Traceback (most recent call last):
  File "./wsgi.py", line 1, in <module>
    from app import app
ImportError: cannot import name 'app'
unable to load app 0 (mountpoint='') (callable not found or import error)

Моя структура каталогов выглядит следующим образом:

Xerix/
  __pycache__/
  app/
    __init.py__
    static
    templates
    xerix.db
  cert/
    xerix_me.crt
  flask/ (virtualenv)
  wsgi.py
  xerix.ini

Если я запускаю journalctl -u xerix, яget:

Nov 29 17:43:18 xerix systemd[1]: Started uWSGI instance to serve xerix.
Nov 29 17:43:18 xerix systemd[1]: xerix.service: Main process exited, code=exited, status=203/EXEC
Nov 29 17:43:18 xerix systemd[1]: xerix.service: Failed with result 'exit-code'.

(это самый последний журнал)

Как это исправить и что мне делать?

Любая и вся помощь приветствуется.Спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

Ваша проблема не имеет ничего общего с nginx.Вы должны сказать uwsgi, где найти вашу библиотеку и зависимости.Создайте файл myapp.wsgi со следующим содержимым в папке Xerix:

# myapp.wsgi
from app import app as application

Сохраните его и запустите uwsgi следующим образом:

uwsgi --http :8080 --wsgi-file myapp.wsgi --chdir /path/to/Xerix/ --pythonpath flask/python-3.7.0/lib/python3.7/site-packages

Возможно, вам придется немного изменить путь в соответствии сна вашу версию Python.

...