webentwicklung-frage-antwort-db.com.de

pip-installierter uWSGI ./python_plugin.so-Fehler

Ich habe uWSGI mit pip installiert und starte es mit XML, um meine Anwendung zu laden. Die XML-Konfiguration enthält <plugin>python</plugin>. Auf meinem neuen Server führt es zu einem Fehler:

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

Ich kann die Versionen .c und .o finden:

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'

Aber keine gefunden. Mein vorheriges System hatte eine uwsgi-Installation über apt-get, aber das ist wirklich alt (und ich bin mir ziemlich sicher, dass es das pip normalerweise installiert, aber vielleicht nicht für Shared Objects?)

Einige Hintergrundinformationen:

  • Ubuntu 12.0.4 LTS
  • Python 2.7 (virtualenv)
  • Ich habe uWSGI in meinem venv installiert, mit dem normalen pip install uwsgi (keine Sudo)

Also bin ich ein bisschen ahnungslos :( Ich kann nicht die einzige Person auf der Welt sein, die dies hat, oder? Soll ich die .so-Objekte selbst kompilieren? (Wenn ja, wie?) Oder gibt es eine andere großartige Lösung?

26
Carst

Distros sollte uWSGI modular zusammenstellen, wobei jedes Feature als Plug-In fungiert. Wenn Sie jedoch auf sprachspezifische Weise installieren (pip, gem ...), wird die entsprechende Sprache eingebettet, sodass Sie das Plugin nicht laden müssen

46
roberto

Für jeden, der Probleme damit hat, müssen Sie grundsätzlich die Zeilen Ihres Plugins aus den Konfigurationsdateien entfernen, wenn Sie von einem Distributionspaket zu einer Pypi- oder Gem-Installation wechseln. Ich habe früher das Ubuntu/Debian-Paket für uwsgi verwendet, aber es war alt, also habe ich stattdessen ein Upgrade von pip vorgenommen.

In meiner Konfigurations-INI-Datei hatte ich folgende Zeile:

plugin = python

Das Entfernen dieser Zeile behebt das Problem.

44
Jordan

Vielleicht haben Sie diesen Befehl vergessen

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

Installieren Sie alle verfügbaren Plugins: Sudo apt-get install uwsgi-plugins-all

0
mahdix

Ab 6/2018 wurde der yum Paketname von uwsgi-plugin-python Auf uwsgi-plugin-python2https://src.fedoraproject.org/rpms/uwsgi/pull- aktualisiert. request/4 #

Der neue Installationsbefehl lautet daher yum install uwsgi-plugin-python2

0
LandyCandy