【问题标题】:uWSGI: No request plugin is loaded, you will not be able to manage requestsuWSGI:未加载请求插件,您将无法管理请求
【发布时间】:2013-11-24 16:33:01
【问题描述】:

我已经加载了从源代码构建的 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 !!!!!!!!!!

应该加载哪个插件?

【问题讨论】:

  • 你是如何构建 uWSGI 的?使用没有特定语言的配置文件进行构建是非常罕见的(除非您正在制作发行版包)
  • 我正在尝试编译 uWSGI,然后单独编译显式 Python 插件,以便我可以使用多个 Python 版本。这样做时,似乎没有构建足够的插​​件,所以我需要知道典型插件的列表。看起来 /buildconf 中的 .ini 文件提供了线索。

标签: python uwsgi


【解决方案1】:

我遇到了这个问题,卡了好几个小时。

Python2

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

sudo apt-get install uwsgi-plugin-python

Python3

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

sudo apt-get install uwsgi-plugin-python3

然后在你的 uwsgi .ini 文件中添加plugins = python3


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

【讨论】:

  • 只需将 plugins = python 放入 ini 即可解决此问题。
  • plugins = python3 在 uwsgi vassal .ini 文件中,如果你使用的是 python3 插件,你可以 ls /usr/lib/uwsgi/plugins/ 得到一个有效插件名称的列表,minux _plugin... 后缀。
  • 有趣的事实是在配置中有plugin = python3 而没有在系统上安装插件不会抱怨缺少插件:/(谢谢)
【解决方案2】:

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

sudo pip install uwsgi

无论如何这都为我解决了。

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

【讨论】:

  • 在我的情况下,我在安装 pip 之前已经安装了 Debian 的 uwsgi 版本,所以我必须确保在之前创建从 /usr/bin/uwsgi 到 /usr/bin/local 的符号链接它工作正常。
【解决方案3】:

如果你使用的是 python3:

安装插件:

sudo apt install uwsgi-plugin-python3

在您的站点配置(.ini 文件)中添加 uwsgi python3 插件行:

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

【讨论】:

    【解决方案4】:

    刚刚偶然发现此错误消息并浪费了几个小时,但在我的情况下,原因与其他答案中提到的所有内容都不同。

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

    假设您现在正尝试以 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
    

    【讨论】:

      【解决方案5】:

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

      • 打开终端并输入以下命令检查 python3 位置:

      哪个python3

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

      希望对你有帮助!

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 2015-12-29
            • 2016-02-05
            • 1970-01-01
            • 2012-05-25
            • 2018-07-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-30
            相关资源
            最近更新 更多