我发现这在理论上应该起作用于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
答案 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)
我现在有一个工作的挂架应用程序!耶!
我知道其他人一直在寻找这个,所以我希望这有助于他们。