4 Stimmen

Wie kann ich Phusion Passenger mitteilen, welches Python verwendet werden soll?

Ich verwende Phusion Passenger mit einer Ruby-App und ich möchte es auch einrichten, um mit einer Django-Appengine-App zu arbeiten, an der ich gerade arbeite.

Googeln für "passenger_wsgi.py" Ich war in der Lage, die folgende sehr einfache Nicht-Django-App auf Passagier arbeiten zu bekommen:

passenger_wsgi.py:

def application(environ, start_response):
   response_headers = [('Content-type','text/plain')]
   start_response('200 OK', response_headers)
   return ['Hello World!\n']

Füge ich jedoch die Zeile import django.core.handlers.wsgi in den Mix einfügen, erhalte ich "Beim Importieren Ihrer passenger_wsgi.py ist ein Fehler aufgetreten". Durch Ausdrucken des sys.path habe ich herausgefunden, dass zumindest ein Teil des Grundes darin liegt, dass Passenger die falsche Python-Installation auf meinem Rechner verwendet.

Wie kann ich Passenger (auf Apache) so konfigurieren, dass es /opt/local/bin/python2.5 anstelle des Standardpythons des Systems?

0 Stimmen

Wow, cool. Ich wusste nicht, dass Passagier auch mit django funktioniert.

0 Stimmen

4voto

Kelvin Sherlock Punkte 735

Sie können den Python-Interpreter über die Option PassengerPython in der Serverkonfiguration, dem virtuellen Host, dem Verzeichnis oder der .htaccess-Datei.

Apache: PassengerPython

nginx: passagier_python

allein stehend: --Python

0 Stimmen

Dies ist der beste (am wenigsten hackige) Weg.

0 Stimmen

Das ist es. Dies ist eine schöne und klare Lösung für die Kombination Phusion Passenger / NginX / Flask. Angenommen, Sie haben eine Flask-App namens app.py y app.conf Ihre Konfigurationsdatei ist, müssen Sie z. B. Folgendes hinzufügen passenger_python /usr/local/bin/python3 Zeile zum server Abschnitt (Kontext) (oder wie auch immer der Pfad zur ausführbaren Python3-Datei lautet).

3voto

emmby Punkte 98109

Ich entdeckte, dass ich, wenn ich den Hashbang in der ersten Zeile von passenger's request_handler.py Datei zu #!/opt/local/bin/python2.5 verwendet der Passagier das richtige Python. Aber es muss doch einen besseren Weg geben, als die Verteilung von Passenger zu ändern?

1 Stimmen

Wo könnte ich finden request_handler.py ? Ich verwende das Passenger-Docker-Image.

3voto

Michael Wexler Punkte 31

Ein Trick besteht darin, eine Zeile wie diese in die Datei passenger_wsgi.py einzufügen:

if sys.version < "2.4":  
     os.execl("/usr/bin/python2.4", "python2.4", *sys.argv)

oder

INTERP = "/usr/local/bin/python"  
    if sys.executable != INTERP:  
        os.execl(INTERP, INTERP, *sys.argv)

Jede dieser Optionen weist die Umgebung an, Ihr bevorzugtes Python zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X