[PYTHON] Über die Warnung "Kompiliert für ~" von mod_wsgi

Die Installation von mod_wsgi mit `` `libapache2-mod-wsgi``` hat eine Gefahr. Überprüfen Sie die Protokolldatei mit dem folgenden Befehl.

vim /var/log/apache2/error.log

Ich bin sicher, dass eine solche Warnung (ich denke, es hängt von der Umgebung ab) beschrieben wird.

[Mon Feb 13 14:10:22.233656 2017] [wsgi:warn] [pid 10526:tid 139972854908800] mod_wsgi: Compiled for Python/2.7.8.
[Mon Feb 13 14:10:22.233725 2017] [wsgi:warn] [pid 10526:tid 139972854908800] mod_wsgi: Runtime using Python/2.7.9.

Dies bedeutet wörtlich, dass sich die Version von Python, die wsgi kompiliert, von der Version von Python unterscheidet, die derzeit verwendet wird.

Um dies zu lösen, installieren Sie mod_wsgi mit pip neu. Bitte Install pyenv vorher.

pip install mod_wsgi

Dann wird eine solche Datei erstellt

/home/USERNAME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

Ändern Sie die Konfigurationsdatei so, dass Apache2 diese Datei liest.

sudo vim /etc/apache2/mods-available/wsgi.load

Beschreiben Sie den Pfad des Moduls. Geben Sie das gerade installierte Pyenv-Modul an. (Vergessen Sie nicht, `` `USERNAME``` zu ändern)

LoadModule wsgi_module /home/USERNAME/.pyenv/versions/3.5.2/lib/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

Starten Sie anschließend apache2 neu.

sudo service apache2 restart

Wenn Sie nun erneut auf `` `(Domainname oder IP-Adresse) / test_wsgi``` zugreifen, wird Hello World gezeichnet und es sollte keine Warnung auftreten.

Wenn Sie mit Ubuntu fortfahren, tritt außerdem ein Fehler in Ubuntu auf (Befehl nicht gefunden schlägt fehl, wenn sich der vom Benutzer installierte Python3 in PATH befindet) Ursachen `` ImportError: Kein Modul mit dem Namen '_sysconfigdata_m' ' `, daher wird Debian empfohlen.

Recommended Posts

Über die Warnung "Kompiliert für ~" von mod_wsgi
Über Python für Schleife
Über Python für ~ (Bereich)
Über pgbench für MySQL
Über Polymorphismus zur Nestbeseitigung
Fabric unterstützt Python 3
Über "für _ in range ():" von Python
Web Scraping für Wetterwarnbenachrichtigungen.