2010-05-16 42 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)

每一種主要講述使用您的首選環境蟒蛇。

相關問題