2010-05-16 62 views
1

我正在使用Phusion Passenger与一个红宝石应用程序,我也想设置它与我正在工作的django appengine应用程序一起工作。我该如何告诉Phusion Passenger使用哪个python?

谷歌搜索“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

太酷了。我从来不知道乘客也与Django合作。 – 2010-05-16 12:45:08

回答

1

我发现如果我将乘客request_handler.py文件第一行的hashbang更改为#!/opt/local/bin/python2.5,乘客使用了正确的python。但肯定会有比改变乘客分布更好的方法吗?

2

一个窍门是包括这样一行在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)

每一种主要讲述使用您的首选环境蟒蛇。

相关问题