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を使用していると確信していますが、共有オブジェクトではないのでしょうか?)
いくつかの背景情報:
pip install uwsgi
(Sudo
なし)を使用して、venvにuWSGIをインストールしましただから私は少し無知です:(私はこれを持っている世界で唯一の人になることはできませんか?.so
オブジェクトを自分でコンパイルする必要がありますか?(もしそうなら、どうですか?)解決?
ディストリビューションは、各機能をプラグインとして、モジュール形式でuWSGIをパッケージ化する必要があります。ただし、言語固有の方法(pip、gem ...)を使用してインストールすると、関連する言語が埋め込まれるため、プラグインをロードする必要はありません。
これに問題がある人は、基本的に、ディストリビューションパッケージからpypiまたはgemインストールに変更する場合、設定ファイルからプラグインを記述する行を削除する必要があります。以前はuwsgiにUbuntu/Debianパッケージを使用していましたが、古いため、代わりにpipを使用するようにアップグレードしました。
したがって、私の構成.iniファイルには、次の行がありました。
plugin = python
その行を削除すると、問題が修正されます。
たぶん、あなたはこのコマンドを忘れました
$ apt-get install uwsgi-plugin-python
利用可能なすべてのプラグインをインストールします:Sudo apt-get install uwsgi-plugins-all
2018年6月の時点で、yum
パッケージ名がuwsgi-plugin-python
からuwsgi-plugin-python2
に更新されました https://src.fedoraproject.org/rpms/uwsgi/pull-request/ 4#
したがって、新しいインストールコマンドはyum install uwsgi-plugin-python2
です。