pip-installed uWSGI ./python_plugin.so错误

时间:2013-04-10 21:06:38

标签: python uwsgi

我已经使用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'

但是没有发现。我之前的系统通过apt-get进行了uwsgi安装,但这确实很旧(我很确定它通常使用pip安装的uwsgi,但是对于共享对象可能不行吗?)

一些背景信息:

  • Ubuntu 12.0.4 LTS
  • Python 2.7(virtualenv)
  • 我已经使用普通pip install uwsgi(无sudo
  • 在我的venv中安装了uWSGI

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

5 个答案:

答案 0 :(得分:47)

Distros应该以模块化方式打包uWSGI,每个功能都作为插件。但是,当您使用特定于语言的方式(pip,gem ...)进行安装时,会嵌入相关语言,因此您无需加载插件

答案 1 :(得分:45)

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

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

plugin = python

删除该行可以解决问题。

答案 2 :(得分:7)

也许你忘记了这个命令

$ apt-get install uwsgi-plugin-python

答案 3 :(得分:0)

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

答案 4 :(得分:0)

截至6/2018,yum软件包名称已从uwsgi-plugin-python更新为uwsgi-plugin-python2 https://src.fedoraproject.org/rpms/uwsgi/pull-request/4#

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