2013-04-10 229 views
25

我使用PIP和使用XML啓動它加載我的應用程序安裝uWSGI。 XML配置包含<plugin>python</plugin>。在我的新的服務器它導致了一個錯誤:PIP安裝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' 

但是,沒有。所以發現。我以前的系統有一個uwsgi安裝通過apt-get的,但是這是真的老了(我敢肯定它採用了PIP安裝uwsgi正常,但也許不是共享對象呢?)

一些背景資料:

  • Ubuntu的LTS 12.0.4
  • Python 2.7版(的virtualenv)
  • 我已經在我的VENV安裝uWSGI,使用正常pip install uwsgi(無sudo

所以我有點無知:(我不能是世界上唯一擁有這個的人,對嗎?我應該自己編譯.so對象嗎? (如果是這樣,如何?)或者是否有另一個很好的解決方案?

+0

所以......我從XML文件中刪除了蟒蛇,現在加載...但我不瞭解爲什麼/何時需要。還要檢查它是否真的*現在可以工作 – Carst 2013-04-10 21:27:06

回答

41

發行版應以模塊化的方式打包uWSGI,與每個特徵作爲一個插件。但是,當你安裝使用相關的語言嵌入語言特定的方式(PIP,寶石......),所以你不需要加載插件

+1

謝謝!互聯網指南讓我有點困惑,但最終它比預期更容易! ;)感謝您的幫助 – Carst 2013-04-11 08:04:19

+0

這是對uwsgi安裝在那裏最相關的評論。謝謝。這是一個有用的鏈接到未來的讀者:http://projects.unbit.it/uwsgi/wiki/MultiPython – 2014-05-14 00:40:14

41

對於被有這個困難的人,基本上你需要刪除線如果您從發行版更改爲pypi或gem install,則會從您的配置文件中聲明您的插件。我以前使用Ubuntu/Debian軟件包進行uwsgi,但是它很舊,所以我升級爲使用pip。

所以,在我的配置.ini文件,我有以下行:

plugin = python 

刪除該行解決了這個問題。

+0

感謝喬丹,這也爲我工作 – 2013-06-25 11:47:21

+4

對於使用XML而不是.ini的人來說,一個小的fyi,刪除「 python」 – Carst 2013-10-07 22:34:16

3

你可能忘了這個命令

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

或者如果您使用的是python3 apt-get install uwsgi-plugin-python3' – 2017-03-02 08:43:01

+0

並在centos rhel下 - 「sudo yum install uwsgi-plugin-python' – radtek 2018-01-16 02:46:23

0

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