dreamhost上的passenger_wsgi.py让定向塔工作

时间:2010-10-20 04:41:13

标签: pylons dreamhost

我发现这在理论上应该起作用于git hub.com passenger-pylons-wsgi-example

import os, sys                                                                                                                                          
sys.path.append('/home/user/test.sample.com/Helloworld')                                                                     
os.environ['PYTHON_EGG_CACHE'] = '/home/user/tmp'   

from paste.deploy import loadapp                                                                                                                        

def application(environ, start_response):                                                                                                               
    environ['SCRIPT_NAME'] = environ['PATH_INFO']                                                                                                       
    application = loadapp('config:/home/user/test.sample.com/production.ini')                                    
    return application(environ, start_response)

在dreamhost上尝试过,我得到了:

  

导入您的错误   passenger_wsgi.py

我也尝试过虚拟环境,但它似乎也没有用。

请注意我按照python 2.6的说明操作,但在虚拟目录中没有激活。

有什么想法吗?

我也尝试添加:

from fcgi import WSGIServer

并在def申请之后:

server = WSGIServer(application)
server.run()

但仍然得到同样的错误。我希望它有点描述性,所以我可以调试passenger_wsgi

1 个答案:

答案 0 :(得分:4)

终于找到了答案:

import os, sys                                      
INTERP = "/home/user/local/bin/python" 
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)                                                                                                   
sys.path.append('/home/user/test.sample.com/Helloworld')                                                                     
os.environ['PYTHON_EGG_CACHE'] = '/home/user/tmp'   

from paste.deploy import loadapp                                                                                                                        

def application(environ, start_response):                                                                                                               
    environ['SCRIPT_NAME'] = environ['PATH_INFO']                                                                                                       
    application = loadapp('config:/home/denat/test.sample.com/production.ini')                                    
    return application(environ, start_response)

这里的不同之处在于虚拟环境是使用挂架设置的,但没有使用它。从dreamhost上的wiki我需要添加以下行:

INTERP = "/home/user/local/bin/python" 
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)               

我现在有一个工作的挂架应用程序!耶!

我知道其他人一直在寻找这个,所以我希望这有助于他们。