我正在使用带有红宝石应用程序的Phusion Passenger,我也想将其设置为与我正在使用的django appengine应用程序一起工作。
谷歌搜索“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?
答案 0 :(得分:3)
我发现如果我将乘客的request_handler.py
文件的第一行的hashbang更改为#!/opt/local/bin/python2.5
,乘客就会使用正确的python。但肯定有一个比修改乘客分布更好的方法吗?
答案 1 :(得分:3)
一个技巧是在passenger_wsgi.py文件中包含这样的一行:
if sys.version < "2.4":
os.execl("/usr/bin/python2.4", "python2.4", *sys.argv)
或
INTERP = "/usr/local/bin/python"
if sys.executable != INTERP:
os.execl(INTERP, INTERP, *sys.argv)
这些基本上都告诉环境使用你喜欢的python。
答案 2 :(得分:1)
您可以通过服务器配置,虚拟主机,目录或.htaccess文件中的PassengerPython
变量来指定python解释器。
apache:PassengerPython
nginx:passenger_python
独立:--python