Python uwsgi http是不明确的

Python uwsgi http是不明确的,python,django,nginx,uwsgi,Python,Django,Nginx,Uwsgi,我正试图在uwsgi上运行Django应用程序,但出现以下错误 uwsgi --http :8000 --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py uwsgi: option '--http' is ambiguous getopt_long() error 当我从-http改为--socket时,它会工作,但它再次表示--home是不明确的试试: uwsgi --http=:8000 --hom

我正试图在uwsgi上运行Django应用程序,但出现以下错误

uwsgi --http :8000 --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py

uwsgi: option '--http' is ambiguous
getopt_long() error
当我从-http改为--socket时,它会工作,但它再次表示--home是不明确的

试试:

uwsgi --http=:8000 --home=/home/cuser/.virtualenvs/vq --chdir=/var/www/sid/sid -w wsgi.py

对于某些版本的getopt,这应该可以工作。如果没有,请尝试将参数放入配置文件或更新系统中的getopt库,并重新编译uWSGI。

这很可能是因为您已从发行版打包的二进制文件中安装了uWSGI,这些二进制文件在构建中更为精简,并且缺少一些插件

您可以通过
pip install uwsgi
修复此问题,并将
uwsgi
替换为
path/to/uwsgi/binary/installed/using/pip
。您可以使用
pip show uwsgi
发现

[请注意:如果您使用的是
python3
,请使用
pip3
]

另一种方法是下载相应的http/python3插件并运行以下命令:

uwsgi --plugins http,python --http :8000 --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py

在使用发行版提供的软件包时,您可能需要考虑的是,您的发行版很可能以模块化方式构建了uWSGI(每个功能都是必须加载的不同插件)

在删除http路由器时,您必须在命令前面加上--plugin python、http和--plugin python

范例 附加——插件python

uwsgi --http :8000 --plugin python --home /home/cuser/.virtualenvs/vq --chdir /var/www/sid/sid -w wsgi.py
在我的例子(CentOS 7)中,我必须安装
uwsgi路由器http
,并添加
——插件http、python