web-dev-qa-db-fra.com

erreur uWSGI ./python_plugin.so installée par pip

J'ai installé uWSGI à l'aide de pip et je l'ai démarré avec un fichier XML pour charger mon application. La configuration XML contient <plugin>python</plugin>. Sur mon nouveau serveur cela conduit à une erreur:

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 !!!

Je peux trouver les versions .c et .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'

Mais pas trouvé. Mon système précédent avait installé uwsgi via apt-get, mais c'est vraiment vieux (et je suis sûr qu'il utilise le pip installé uwsgi normalement, mais peut-être pas pour les objets partagés alors?)

Quelques informations de fond:

  • Ubuntu 12.0.4 LTS
  • Python 2.7 (virtualenv)
  • J'ai installé uWSGI dans mon venv, en utilisant le pip install uwsgi normal (no Sudo)

Donc, je suis un peu désemparé :( je ne peux pas être la seule personne au monde à avoir cela, non? Devrais-je compiler moi-même les objets .so? (Si oui, comment?) Ou existe-t-il une autre solution intéressante?

26
Carst

Distros devrait conditionner uWSGI de manière modulaire, avec chaque fonction sous forme de plug-in. Mais lorsque vous installez en utilisant des méthodes spécifiques à la langue (pip, gem ...), la langue appropriée est intégrée, vous n'avez donc pas besoin de charger le plug-in

46
roberto

Si vous rencontrez des problèmes avec ceci, vous devez essentiellement supprimer les lignes qui indiquent votre plug-in à partir de vos fichiers de configuration si vous passez d'un paquet de distribution à une installation pypi ou gem. J'utilisais auparavant le paquet Ubuntu/Debian pour uwsgi, mais il était vieux et j'ai donc mis à niveau pour utiliser pip à la place.

Donc, dans mon fichier de configuration .ini, j'avais la ligne suivante:

plugin = python

Supprimer cette ligne résout le problème.

44
Jordan

Peut-être que vous avez oublié cette commande

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

Installez tous les plugins disponibles: Sudo apt-get install uwsgi-plugins-all

0
mahdix