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:
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?
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
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.
Peut-être que vous avez oublié cette commande
$ apt-get install uwsgi-plugin-python
Installez tous les plugins disponibles: Sudo apt-get install uwsgi-plugins-all