Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I tell Phusion Passenger which python to use?

I'm using Phusion Passenger with a ruby app and I'd also like to set it up to work with an django appengine app I'm working on.

Googling for "passenger_wsgi.py" I was able to get the following very simple non-django app working on passenger:

passenger_wsgi.py:

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

However, if I add the line import django.core.handlers.wsgi into the mix, I get 'An error occurred importing your passenger_wsgi.py'. By printing out the sys.path I've discovered that at least part of the reason is because Passenger is using the wrong python installation on my machine.

How can I configure Passenger (on apache) to use /opt/local/bin/python2.5 instead of the system default python?

like image 777
emmby Avatar asked Dec 29 '22 16:12

emmby


2 Answers

You can specify the python interpreter via the PassengerPython variable in the server config, virtual host, directory, or .htaccess file.

apache: PassengerPython

nginx: passenger_python

standalone: --python

like image 92
Kelvin Sherlock Avatar answered Jan 05 '23 18:01

Kelvin Sherlock


I discovered that if I changed the hashbang at the first line of passenger's request_handler.py file to #!/opt/local/bin/python2.5, passenger used the correct python. But surely there must be a better way than modifying passenger's distribution?

like image 27
emmby Avatar answered Jan 05 '23 18:01

emmby