uWSGI:没有加载请求插件,您将无法管理请求



我已经加载了uWSGI v 1.9.20,从源代码构建。 我收到此错误,但如何判断需要哪个插件?

!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!
no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load
it with --plugin.
!!!!!!!!!!! END OF WARNING !!!!!!!!!!

应该加载哪个插件?

我遇到了这个问题,被困了几个小时。

蟒蛇2

我的问题与列出的答案不同,请确保您的 uwsgi .ini文件中有plugins = python并安装了uwsgi python插件:

sudo apt-get install uwsgi-plugin-python

蟒蛇3

如果您使用的是 Python3,请使用相同的方法并执行以下操作:

sudo apt-get install uwsgi-plugin-python3

然后在 UWSGI .ini 文件中添加plugins = python3

<小时 />

完成上述操作后,我的应用程序工作了。显然,这适用于python项目,但其他项目也需要类似的方法。

通过 pip 而不是您正在使用的操作系统中的包管理器

安装 uwsgi 可能是最简单的,pip 中的包通常比您可能正在使用的操作系统中的包管理器更新:

sudo pip install uwsgi

无论如何,这为我解决了它。

为了在同一台服务器上使用多个Python版本,我建议看看virtualenv:
https://virtualenv.pypa.io/en/latest/

如果你使用的是python3:

安装插件:

sudo apt install uwsgi-plugin-python3

在站点配置中添加 UWSGI Python3 插件行(.ini 文件(:

plugins = python3

如果你想列出你的UWSGI的Python插件列表:

ls -l /usr/lib/uwsgi/plugins/ | grep python

请记住,python3插件与python2不同。

如果你不定义python的插件uwsgi 说:

!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!
no request plugin is loaded, you will not be able to manage requests.
you may need to install the package for your language of choice, or simply load it with --plugin.
!!!!!!!!!!! END OF WARNING !!!!!!!!!!

如果你使用Python2的插件并且你的venv在Python3中,它会说:

ImportError: No module named site

只是偶然发现了这条错误消息并浪费了几个小时,但就我而言,原因与其他答案中提到的所有内容都不同。

假设您刚刚通过pip将本地uWSGI版本安装到您自己的virtualenv中(例如,如此处所述(。

假设您现在尝试以 root 身份运行您的 uWSGI 服务器(例如,因为您想以www-data用户身份提供应用程序(。这就是你会这样做的方式,对吧?

. venv/bin/activate
sudo uwsgi --ini your-app.ini

错!即使您的本地uwsgi在您激活环境后在您的路径中,此路径也不会传递到 sudo 命令中,并且您正在启动系统uwsgi而不是本地系统,这可能是无休止混乱的根源,就像我的情况一样。

因此,在我的情况下,解决方案是简单地指定完整路径:

sudo /full/path/to/venv/bin/uwsgi --ini your-app.ini

我有类似的问题,但这解决了它(顺便说一句,我使用MacOS,并且安装了两个python2和3版本,但我想使用Python3(:

  • 打开终端并通过键入以下内容检查 python3 位置:

哪个蟒蛇3

  • 复制完整路径并将其分配给;.ini文件中的插件选项

我希望它有所帮助!

如果您已按照所有 python 插件安装步骤进行操作,但uwsgi --plugin-list仍然无法将0: python列为插件之一,请尝试重新启动计算机。我的 uwsgi 实例作为服务运行(从 Bash 中,使用 service status-all 查看正在运行的服务(,并且可能在服务重新启动时加载了更新的配置设置。

就我而言,这是因为我没有将[uwsgi]作为/etc/uwsgi/apps-available/内配置的标头,而是放置了其他内容(应用程序的名称(。

相关内容

  • 没有找到相关文章

最新更新