Параметры uwsgi --wsgi-file и --module не распознаются

Я пытаюсь запустить приложение Django с помощью uwsgi. Большинство инструкций, которые я нашел, относятся к «--wsgi-file» и «--module» для указания приложения, но «uwsgi» не упоминает эти параметры, и когда я пытаюсь их использовать:

uwsgi -s /tmp/uwsgi.sock --master --module myapp.wsgi
uwsgi: unrecognized option '--module'
getopt_long() error

А также

uwsgi -s /tmp/uwsgi.sock --master --wsgi-file myapp/wsgi.py
uwsgi: unrecognized option '--wsgi-file'
getopt_long() error

Когда я запускаю его без них, я получаю:

uwsgi -s /tmp/uwsgi.sock --master 
*** Starting uWSGI 2.0.9 (64bit) on [Fri Jul 10 11:12:04 2015] ***
compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-11) on 23 April 2015 19:31:15
os: Linux-2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2
detected binary path: /usr/sbin/uwsgi
your processes number limit is 1024
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 5
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145536 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 26597)
spawned uWSGI worker 1 (pid: 26598, cores: 1)

Почему эти варианты не распознаются? Как я должен указать приложение для загрузки? Что это за мусорный софт? Должен ли я вернуться к использованию Gunicorn?


person aaa90210    schedule 10.07.2015    source источник
comment
Как ты установил uwsgi? пункт?   -  person ThrowsException    schedule 10.07.2015
comment
@ aaa90210 Я оказался здесь, потому что у меня была такая же сводящая с ума реакция, как и у тебя. LoL Большинство вариантов не сработало, несмотря на бесчисленное количество примеров в сети. Спасибо за этот пост.   -  person NYCeyes    schedule 07.10.2017


Ответы (2)


Это означает, что плагин python для uWSGI не установлен или не загружен. Для проверки запуска:

$ uwsgi --plugins-list

В общем, если у вас есть встроенный python-dev и т. д., вы можете установить его через:

$ pip install uwsgi

В Debian или Ubuntu вы также можете установить его через:

$ apt-get install uwsgi-plugin-python

В Linux Alpine в настоящее время необходимо указать, где он находится:

$ apk add --update uwsgi-python
$ uwsgi --plugins-dir /usr/lib/uwsgi/ --need-plugin python --plugins-list
*** uWSGI loaded generic plugins ***

*** uWSGI loaded request plugins ***
0: python
...

В качестве альтернативы вы можете указать его полный путь через:

$ uwsgi --plugin /usr/lib/uwsgi/python_plugin.so --plugins-list
person Wernight    schedule 01.03.2016
comment
Все еще не работает для меня. После установки как uwsgi-plugin-python, так и uwsgi-plugin-python3 запуск `uwsgi --http-socket :9090 --wsgi-file ./respond.py --plugin /usr/lib/uwsgi/plugins/python3_plugin.so` по-прежнему дает мне нераспознанный вариант ответа. - person Shadur; 21.12.2017
comment
@Shadur помог мне с аналогичной проблемой, указав аргумент --plugin ... перед любым аргументом, специфичным для плагина. В вашем случае вы можете попробовать: uwsgi --http-socket :9090 --plugin /usr/lib/uwsgi/plugins/python3_plugin.so --wsgi-file ./respond.py - person Magnus Teekivi; 15.09.2018
comment
@shadur, вам нужно включить --plugin python в свою команду после установки stackoverflow.com/a/34638770/5042053 - person Robert Bracco; 19.04.2020

В зависимости от того, как вы установили uwsgi, также может потребоваться установить плагин python. например

apt-get install uwsgi-plugin-python
person roj    schedule 09.08.2015