Führen Sie mod_wsgi mit virtualenv oder Python mit einer anderen Version als dem Systemstandard aus

8

Ich versuche, meine Flask-Anwendung auf CentOS-Server laufen zu lassen. Im Grunde ist das Problem, dass ich Python 2.6 in /usr/bin installiert habe, was Systemstandard und Python 3.4 in /usr/local/bin ist. Ich möchte Python 3.4 virtualenv oder mindestens Python 3.4 Interpreter für mod_wsgi verwenden, um meine Anwendung zu starten.

Ich habe virtualenv in ~/virtualenvs/flask erstellt.

Ich habe dieses WSGI-Skript:

%Vor%

Und folgende Konfiguration in Apache:

%Vor%

Beim Versuch, die Anwendung auszuführen, erhalte ich jedoch einen Fehler:

%Vor%

Ich habe bemerkt, dass entweder Python 2.6 läuft und mein virtualenv nicht aktiviert ist. Was wäre der richtige Weg, um dies zum Laufen zu bringen und trotzdem Python 2.6 als Systemstandard zu haben?

    
Fenikso 12.12.2014, 19:45
quelle

2 Antworten

5

Sie müssen die folgende Zeile in Ihrer apache.conf hinzufügen, um die richtige ausführbare Datei und den Pfad zum virtualenv zu geben.

%Vor%

Sie finden alle Optionen dieser beiden Befehle in der Dokumentation zu mod_wsgi

>

Beachten Sie, dass Sie die Version von mod_wsgi mit der ausführbaren Python-Datei kompatibel haben müssen. In Ihrem Fall müssen Sie wahrscheinlich mod_wsgi3.4 installieren und Apache konfigurieren, um es anstelle des Standardmoduls mod_wsgi zu verwenden.

Die gesamte Konfigurationsdatei sollte lauten:

%Vor%     
afrancais 12.12.2014, 20:30
quelle
2

Sehen Sie sich die WSGIPythonHome- und WSGIPythonPath -Direktiven an. Es ist auch möglich, dass Sie ein python2.6 mod_wsgi installiert haben, mod_wsgi muss für die beabsichtigte Python-Version kompiliert werden und unterstützt nicht mehrere Python-Versionen . Überprüfe also, ob dein mod_wsgi kompatibel zu py3.4 ist und setze die Anweisungen oben.

Alternativ können Sie die flask-App mit einem Python-Server wie gunicorn und proxypass von Apache zu gunicorn ausführen.

    
kalhartt 12.12.2014 20:15
quelle

Tags und Links