2012-08-08 66 views
2

我目前正在嘗試使用乘客wsgi設置一個Django項目。我跟着這個帖子上列出的指示:導入passenger_wsgi.py文件時出錯

Update new Django and Python 2.7.* with virtualenv on Dreamhost (with passenger)

不過,我收到一個錯誤「發生錯誤導入您passenger_wsgi.py」

我能夠成功地接收問候詞如果我把這個消息作爲我passenger_wsgi.py:

def application(environ, start_response): 
    start_response('200 OK', [('Content-type', 'text/plain')]) 
    return ["Hello, world!"] 

但由於某些原因,如果我使用以下(在上述職位概述),我無法讓過去的錯誤。我使用path.append和os.environ行上的命名項目以及path.insert行中的subdomain.domain.com替換單詞'project'。我錯過了什麼嗎?我對這個東西很新,希望能得到任何幫助!謝謝。

下面是目前passenger_wsgi.py,收到導入錯誤。

import sys, os 
cwd = os.getcwd() 
sys.path.append(cwd) 
sys.path.append(cwd + '/project') 

if sys.version < "2.7.3": os.execl("$HOME/<site>/env/bin/python", 
"python2.7.3", *sys.argv) 

sys.path.insert(0,'$HOME/<site>/env/bin') 
sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages/django') 
sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages') 

os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings" 
import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

UPDATE我能得到乘客WSGI是進口的,但現在我得到一個500錯誤。這是我現在坐在的地方:

import sys, os 
sys.path.append(os.getcwd()) 
sys.path.append(os.path.join(os.getcwd(), 'project')) 

sys.path.insert(0, 'home/<site>/env/bin') 
sys.path.insert(0, 'home/<site>/env/lib/python2.7/site- packages/django') 
sys.path.insert(0, 'home/<site>/env/lib/python2.7/site-packages') 
sys.path.insert(0, 'home/<site>/roommates') 

os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings" 
import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

雖然我再次卡住了。我似乎無法找到爲什麼我得到這個錯誤。是被顯示在錯誤日誌了電流誤差每嘗試如下:

Premature end of script headers: 
Premature end of script headers: internal_error.html 
+0

您是否更換了所有其他可更換件? – 2012-08-08 02:36:34

+0

我替換了附加行,版本行,環境行和插入行。我不確定的東西是插入行做什麼,如果我實際上用正確的東西替換它們... – sailboatlie 2012-08-08 03:03:35

+0

@sailboatlie這些插入行確保乘客可以找到庫,當你調用'進口...' – 2013-08-05 16:06:25

回答

0

你應該改變這一行:

sys.path.append(os.path.join(os.getcwd(), 'project')) 

sys.path.append(os.path.join(os.getcwd() + 'project')) 

,並確保你改變項目帶真實項目名稱(或django應用程序)