33

我已经使用 pip 安装了 uWSGI 并使用 XML 启动它来加载我的应用程序。XML 配置包含<plugin>python</plugin>. 在我的新服务器上,它会导致错误:

open("./python_plugin.so"): No such file or directory [core/utils.c line 3321]
!!! UNABLE to load uWSGI plugin: ./python_plugin.so: cannot open shared object file: No such file or directory !!!

我可以找到.c.o版本:

sudo find / -name 'python_plugin.c'
/srv/www/li/venv/build/uwsgi/build/uwsgi/plugins/python/python_plugin.c
/srv/www/li/venv/build/uwsgi/plugins/python/python_plugin.c
sudo find / -name 'python_plugin.o'
/srv/www/li/venv/build/uwsgi/build/uwsgi/plugins/python/python_plugin.o
/srv/www/li/venv/build/uwsgi/plugins/python/python_plugin.o
sudo find / -name 'python_plugin.so'

但没有.so 找到。我以前的系统通过 apt-get 安装了 uwsgi,但这真的很旧(而且我很确定它通常使用 pip 安装的 uwsgi,但可能不适用于共享对象?)

一些背景资料:

  • Ubuntu 12.0.4 LTS
  • Python 2.7(虚拟环境)
  • 我已经在我的 venv 中安装了 uWSGI,使用的是普通的pip install uwsgi(否sudo

所以我有点无能为力:(我不可能是世界上唯一拥有这个的人,对吧?我应该自己编译.so对象吗?(如果是,怎么做?)或者还有其他很好的解决方案吗?

4

5 回答 5

54

对于遇到此问题的任何人,如果您从发行版包更改为 pypi 或 gem 安装,基本上您需要从配置文件中删除说明您的插件的行。我以前使用 uwsgi 的 Ubuntu/Debian 包,但它很旧,所以我升级为使用 pip。

因此,在我的配置 .ini 文件中,我有以下行:

plugin = python

删除该行可以解决问题。

于 2013-05-18T00:20:50.997 回答
53

发行版应该以模块化的方式打包 uWSGI,每个特性都作为一个插件。但是当您使用特定语言的方式(pip,gem ...)安装时,相关语言是嵌入的,因此您不需要加载插件

于 2013-04-11T05:36:55.727 回答
11

也许你忘记了这个命令

$ apt-get install uwsgi-plugin-python

如果您使用的是 Python3,请尝试以下命令:

$ apt-get install uwsgi-plugin-python3
于 2016-05-30T11:32:55.947 回答
0

安装所有可用的插件:sudo apt-get install uwsgi-plugins-all

于 2017-09-05T09:52:45.600 回答
0

自 2018 年 6 月起,yum软件包名称已更新uwsgi-plugin-pythonuwsgi-plugin-python2 https://src.fedoraproject.org/rpms/uwsgi/pull-request/4#

因此,新的安装命令是yum install uwsgi-plugin-python2

于 2019-05-21T21:43:58.207 回答