Unter Ubuntu 14.04 führt die Verwendung von Apache2 mit installiertem Paket libapache2-mod-wsgi-py3 zu Fehlern in /var/log/apache2/error.log
Die Reproduktion ist unkompliziert:
sudo apt-get install apache2
sudo service apache2 restart
# /var/log/apache2/error.log is "clean"
sudo apt-get install libapache2-mod-wsgi-py3
sudo service apache2 restart
/var/log/apache2/error.log gibt den folgenden Fehler aus:
[Mon Jan 05 16:51:53.641332 2015] [:error] [pid 3141:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.643563 2015] [:error] [pid 3141:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.643633 2015] [:error] [pid 3141:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.644350 2015] [:error] [pid 3141:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.643449 2015] [:error] [pid 3140:tid 140703516379008] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>
[Mon Jan 05 16:51:53.644456 2015] [:error] [pid 3140:tid 140703516379008] Traceback (most recent call last):
[Mon Jan 05 16:51:53.644514 2015] [:error] [pid 3140:tid 140703516379008] File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Mon Jan 05 16:51:53.645052 2015] [:error] [pid 3140:tid 140703516379008] assert tlock is not None
[Mon Jan 05 16:51:53.645119 2015] [:error] [pid 3141:tid 140703516379008] AssertionError:
[Mon Jan 05 16:51:53.647513 2015] [:error] [pid 3140:tid 140703516379008] AssertionError:
Wie funktioniert es fehlerfrei?
virtualenv -p python3.4 DIRECTORY
oder ab 3.4 besser ist :pyvenv-3.4 DIRECTORY
.cannot open shared object file: No such file or directory
beim Versuch eine Fehlermeldung ( ) erhält , denken Sie daran, die Version in Schritt 3 zu wechseln. Ich habe Python 3.5, 64-Bit verwendet.mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
. Wenn Sie nicht wissen, welche Version Sie haben, gehen Sie zum Ordner (/usr/lib/apache2/modules/
) und suchen Sie. Diese Antwort scheint auf 32-Bit-Python 3.4 zu basieren.sudo /venv_path/bin/mod_wsgi-express install-module
in Schritt 3 gearbeitet. Sie druckt die Pfade, die Sie in diewsgi_express
DateienIch wollte nur etwas zu der akzeptierten Antwort von samb hinzufügen.
Die tatsächlichen Konfigurationszeilen, die Sie zur Modulkonfiguration hinzufügen müssen, werden vom
mod_wsgi-express install-module
Befehl ausgegeben (dies war in der akzeptierten Antwort nicht explizit).Außerdem habe ich in meinem Fall (und gemäß der Dokumentation zu mod_wsgi pkg - wahrscheinlich war dies nicht der Fall, als die akzeptierte Antwort geschrieben wurde) keine
wsgi_express.*
Dateien erhaltenmods-available
, sondern nurwsgi.*
, und es war ausreichend, diewsgi.load
Datei durch die zu ersetzen neue Konfiguration durch AusführenDies würde natürlich die gesamte Datei überschreiben. Achten Sie also darauf, falls Sie weitere Anweisungen enthalten.
quelle