Мне сложно запустить модуль из UWSGI. Это часть моего кода развертывания:
# ENVIRONMENT
/usr/bin/pip install virtualenv
mkdir -p /srv/www/test
/usr/local/bin/virtualenv /srv/www/test/venv
source /srv/www/test/venv/bin/activate
/srv/www/test/venv/bin/pip install --force-reinstall -e git+git@github.com:xyz/project.git#egg=project
Это код для run.py в корне модуля
from project import app
def main():
"""docstring for main"""
app.run(debug=True)
if __name__ == '__main__':
main()
Это команда, которую я пытаюсь использовать для ее запуска:
/ usr / local / bin / uwsgi --virtualenv $ ENV --module project --chdir $ APP --master
Это сообщение, которое я получаю после выполнения этой команды:
uWSGI работает как root, вы можете использовать --uid / - gid / - chroot options
* ВНИМАНИЕ: вы запускаете uWSGI как root !!! (используйте флаг --uid)
ВНИМАНИЕ: вы запускаете uWSGI без главного диспетчера процессов * ограничение количества ваших процессов составляет 7890, размер вашей страницы памяти составляет 4096 байт
обнаружен максимальный номер дескриптора файла: 1024
механизм блокировки: устойчивые мьютексы pthread
thunder lock: отключено (вы можете включить его с помощью --thunder-lock)
Параметр -s / - socket отсутствует, а стандартный ввод не является сокетом.
Ошибка в том, что он не запускается или не находит мой модуль правильно. Кто-нибудь, пожалуйста, скажите мне, как мне запустить UWSGI, чтобы найти свое приложение?
Вы можете просто добавить файл sock в командную строку:
/usr/local/bin/uwsgi --virtualenv $ENV --module project --chdir $APP --master -s myapp.sock
Вы можете попробовать --module вместо -w (можно сделать то же самое). В противном случае просто убедитесь, что у вас правильные имена; т.е. передать wsgi_module_name или wsgi_module_name: application_callable_name
Хотя ваше сообщение об ошибке на самом деле не говорит о проблеме, связанной с этим. Есть еще одно сообщение, которое вы не цитировали?