Как я могу сказать Phusion Passenger, какой питон использовать? - PullRequest
3 голосов
/ 16 мая 2010

Я использую Phusion Passenger с приложением ruby, и я также хотел бы настроить его для работы с приложением django appengine, над которым я работаю.

Поиск в Google для «passenger_wsgi.py» Мне удалось получить следующее очень простое приложение, не относящееся к django, работающее с пассажиром:

passenger_wsgi.py:

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

Однако, если я добавлю строку import django.core.handlers.wsgi в микс, я получу сообщение «Произошла ошибка при импорте вашего passenger_wsgi.py». Распечатав файл sys.path, я обнаружил, что, по крайней мере, отчасти это связано с тем, что Passenger использует неправильную установку python на моей машине.

Как настроить Passenger (на apache) на использование /opt/local/bin/python2.5 вместо системного Python по умолчанию?

Ответы [ 3 ]

3 голосов
/ 18 февраля 2011

Одна хитрость заключается в том, чтобы добавить такую ​​строку в ваш файл passenger_wsgi.py:

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

или

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

Каждый из них в основном указывает среде использовать ваш предпочтительный питон.

3 голосов
/ 16 мая 2010

Я обнаружил, что если я изменил hashbang в первой строке файла request_handler.py пассажира на #!/opt/local/bin/python2.5, пассажир использовал правильный питон. Но наверняка должен быть лучший способ, чем модифицировать распределение пассажиров?

1 голос
/ 01 октября 2018

Вы можете указать интерпретатор python с помощью переменной PassengerPython в файле конфигурации сервера, виртуального хоста, каталога или .htaccess.

apache: PassengerPython

nginx: passenger_python

автономно: - питон

...