uwsgi 选项 --wsgi-file 和 --module 无法识别
Posted
技术标签:
【中文标题】uwsgi 选项 --wsgi-file 和 --module 无法识别【英文标题】:uwsgi options --wsgi-file and --module not recognized 【发布时间】:2015-09-28 14:53:43 【问题描述】:我正在尝试使用 uwsgi 运行 Django 应用程序。我发现的大多数指令都引用了“--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 吗?
【问题讨论】:
你是如何安装uwsgi的?点子? @aaa90210 我发现自己在这里是因为我和你一样有疯狂的反应。大声笑大多数选项都不起作用,尽管在网上看到了无数的例子。感谢这篇文章。 【参考方案1】:这意味着 uWSGI 的 python 插件 没有安装或加载。验证运行:
$ uwsgi --plugins-list
一般来说,如果你有 build-essential 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
【讨论】:
仍然对我不起作用。在安装了uwsgi-plugin-python
和uwsgi-plugin-python3
之后,运行`uwsgi --http-socket :9090 --wsgi-file ./respond.py --plugin /usr/lib/uwsgi/plugins/python3_plugin.so` 仍然让我“无法识别的选项”响应。
@Shadur 帮助我解决类似问题的是在任何特定于插件的参数之前指定 --plugin ...
参数。在您的情况下,您可以尝试:uwsgi --http-socket :9090 --plugin /usr/lib/uwsgi/plugins/python3_plugin.so --wsgi-file ./respond.py
@shadur,安装后需要在命令中包含 --plugin python ***.com/a/34638770/5042053【参考方案2】:
根据您安装 uwsgi 的方式,可能还需要安装 python 插件。例如
apt-get install uwsgi-plugin-python
【讨论】:
以上是关于uwsgi 选项 --wsgi-file 和 --module 无法识别的主要内容,如果未能解决你的问题,请参考以下文章