2013-04-10 4 views
25

Я установил uWSGI с помощью pip и запустил его с помощью XML для загрузки моего приложения. Конфигурация XML содержит <plugin>python</plugin>. На моем новом сервере приводит к ошибке:Установлена ​​ошибка uWSGI ./python_plugin.so

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-получить, но это на самом деле старый (и я совершенно уверен, что он использует пип установлен uwsgi нормально, но, возможно, не для общих объектов тогда?)

Некоторые справочную информацию:

  • Ubuntu LTS 12.0.4
  • Python 2.7 (virtualenv)
  • Я установил uWSGI в моем venv, используя нормальный pip install uwsgi (без sudo)

Итак, я немного невежественный: (Я не могу быть единственным человеком в мире, чтобы иметь это, не так ли? Должен ли я сам компилировать объекты .so? (Если так, как?) Или есть еще одно отличное решение?

+0

Итак ... Я удалил питона из файла XML и теперь он загружает ... но я не понять, почему/когда это необходимо. Все еще нужно проверить также, действительно ли это работает * – Carst

ответ

41

Distros должен упаковывать uWSGI модульным способом, причем каждая функция является плагином. Но когда вы устанавливаете с использованием специфических для языка способов (pip, gem ...), соответствующий язык встроен, поэтому вам не нужно загружать плагин

+1

Спасибо! Интернет-гиды немного меня смутили, но в итоге было легче, чем ожидалось! ;) Спасибо за вашу помощь – Carst

+0

Это самый актуальный комментарий по установке uwsgi. Спасибо. Вот полезная ссылка для будущих читателей: http://projects.unbit.it/uwsgi/wiki/MultiPython –

41

Для тех, у кого есть проблемы с этим, в основном вам нужно удалить строки которые сообщают ваш плагин из ваших файлов конфигурации, если вы перейдете из дистрибутива в установку pypi или gem. Раньше я использовал Ubuntu/Debian для uwsgi, но он был старым, поэтому я обновил его вместо использования.

Итак, в моей конфигурации .ini файл, я имел следующую строку:

plugin = python 

Удаление этой линии устраняет эту проблему.

+0

Спасибо Джордан, который работал и для меня, а также –

+4

Небольшой fyi для людей, которые используют xml вместо .ini, удаляют " python" – Carst

3

Может быть, вы забыли эту команду

$ apt-get install uwsgi-plugin-python 
+3

Или если вы используете python3 'apt-get install uwsgi-plugin-python3' –

+0

и под centos rhel -' sudo yum install uwsgi-plugin-python' – radtek

0

Установить все доступные плагины: sudo apt-get install uwsgi-plugins-all

Смежные вопросы