web-dev-qa-db-ja.com

pip-installed uWSGI ./python_plugin.soエラー

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をインストールしていましたが、それは本当に古いものです(そして、通常はpwsがインストールされたuwsgiを使用していると確信していますが、共有オブジェクトではないのでしょうか?)

いくつかの背景情報:

  • Ubuntu 12.0.4 LTS
  • Python 2.7(virtualenv)
  • 通常のpip install uwsgiSudoなし)を使用して、venvにuWSGIをインストールしました

だから私は少し無知です:(私はこれを持っている世界で唯一の人になることはできませんか?.soオブジェクトを自分でコンパイルする必要がありますか?(もしそうなら、どうですか?)解決?

30
Carst

ディストリビューションは、各機能をプラグインとして、モジュール形式でuWSGIをパッケージ化する必要があります。ただし、言語固有の方法(pip、gem ...)を使用してインストールすると、関連する言語が埋め込まれるため、プラグインをロードする必要はありません。

48
roberto

これに問題がある人は、基本的に、ディストリビューションパッケージからpypiまたはgemインストールに変更する場合、設定ファイルからプラグインを記述する行を削除する必要があります。以前はuwsgiにUbuntu/Debianパッケージを使用していましたが、古いため、代わりにpipを使用するようにアップグレードしました。

したがって、私の構成.iniファイルには、次の行がありました。

plugin = python

その行を削除すると、問題が修正されます。

47
Jordan

たぶん、あなたはこのコマンドを忘れました

$ apt-get install uwsgi-plugin-python
8
Zhengquan Feng

利用可能なすべてのプラグインをインストールします:Sudo apt-get install uwsgi-plugins-all

0
mahdix

2018年6月の時点で、yumパッケージ名がuwsgi-plugin-pythonからuwsgi-plugin-python2に更新されました https://src.fedoraproject.org/rpms/uwsgi/pull-request/ 4#

したがって、新しいインストールコマンドはyum install uwsgi-plugin-python2です。

0
LandyCandy