passenger_wsgi.py на хосте мечты, чтобы заставить работать пилоны - PullRequest
4 голосов
/ 20 октября 2010

Это то, что я обнаружил, что теоретически должно работать из 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

Я также попробовал виртуальную среду, но она тоже не сработала.но не активировать в виртуальном каталоге.

Есть идеи?

Я также попытался добавить:

from fcgi import WSGIServer

и после приложения def:

server = WSGIServer(application)
server.run()

Но все равно получаю ту же ошибку.Хотелось бы, чтобы это было немного более наглядно, чтобы я мог отлаживать passenger_wsgi

1 Ответ

4 голосов
/ 20 октября 2010

Наконец-то нашел мой ответ:

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 мне нужно было добавить следующие строки:

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

Теперь у меня есть рабочее приложение пилонов!Yay!

Я знаю, что другие искали это, поэтому я надеюсь, что это поможет им.

...