Ошибка установки uWSGI./python_plugin.so
Я установил uWSGI с помощью pip и запустил его с помощью 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 найдено. Моя предыдущая система установила uwsgi через apt-get, но это действительно старое (и я уверен, что он использует установленный пик uwsgi, но, возможно, не для общих объектов?)
Некоторая справочная информация:
- Ubuntu 12.0.4 LTS
- Python 2.7 (virtualenv)
- Я установил uWSGI в своем Venv, используя обычный
pip install uwsgi
(no sudo
)
Итак, я немного недоумеваю:( Я не могу быть единственным человеком в мире, чтобы иметь это, правильно? Я должен сам скомпилировать объекты .so
(если так, как?) Или есть еще один отличное решение?
Ответы
Ответ 1
Distros должен упаковывать uWSGI модульным способом, причем каждая функция является плагином. Но когда вы устанавливаете с использованием специфических для языка способов (pip, gem...), соответствующий язык встроен, поэтому вам не нужно загружать плагин
Ответ 2
Для тех, у кого есть проблемы с этим, в основном вам нужно удалить строки, которые указывают ваш плагин из ваших файлов конфигурации, если вы перейдете из дистрибутива в установку pypi или gem. Раньше я использовал Ubuntu/Debian для uwsgi, но он был старым, поэтому я обновил его вместо использования.
Итак, в моем файле конфигурации .ini у меня была следующая строка:
plugin = python
Удаление этой строки устраняет проблему.
Ответ 3
Возможно, вы забыли эту команду
$ apt-get install uwsgi-plugin-python
Ответ 4
Установите все доступные плагины: sudo apt-get install uwsgi-plugins-all
Ответ 5
По состоянию на 6/2018 имя пакета yum
было обновлено с uwsgi-plugin-python
до uwsgi-plugin-python2
https://src.fedoraproject.org/rpms/uwsgi/pull-request/4#
Поэтому новая команда установки выглядит так: yum install uwsgi-plugin-python2