Comment puis-je indiquer à Phusion Passenger quel python utiliser?

J’utilise Phusion Passenger avec une application Ruby et j’aimerais aussi l’installer pour travailler avec une application Django Appengine sur laquelle je travaille.

Googling pour “passenger_wsgi.py” J’ai pu obtenir l’application très simple non-django suivante sur le passager:

passenger_wsgi.py:

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

Cependant, si j’ajoute la ligne import django.core.handlers.wsgi dans le mix, j’obtiens «Une erreur est survenue lors de l’importation de En imprimant sys.path, j’ai découvert qu’au moins une partie de la raison est que Passenger utilise une installation Python incorrecte sur ma machine.

Comment configurer Passenger (sur apache) pour utiliser /opt/local/bin/python2.5 au lieu du python par défaut du système?

J’ai découvert que si je changeais le hashbang à la première ligne du fichier request_handler.py du passager en #!/opt/local/bin/python2.5 , le passager utilisait le bon python. Mais sûrement, il doit y avoir un meilleur moyen que de modifier la dissortingbution des passagers?

Une astuce consiste à inclure une ligne comme celle-ci dans votre fichier passenger_wsgi.py:

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

ou

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

Chacun d’entre eux dit à l’environnement d’utiliser votre python préféré.