我目前正在尝试使用乘客wsgi设置Django项目。我按照这篇文章中的说明进行了操作:
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行上用我的命名项目替换'project'这个词,在path.insert行上用subdomain.domain.com替换。我错过了什么吗?我对这些东西很新,并且非常感谢我能得到的任何帮助!感谢。
以下是接收导入错误的当前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()
更新我能够获得进口的乘客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 :(得分:0)
您应该更改此行:
sys.path.append(os.path.join(os.getcwd(), 'project'))
到
sys.path.append(os.path.join(os.getcwd() + 'project'))
并确保使用真实项目(或django app)的名称更改 project