2

我目前正在尝试使用乘客 wsgi 建立一个 Django 项目。我按照这篇文章中的说明进行操作:

在 Dreamhost 上使用 virtualenv 更新新的 Django 和 Python 2.7.*(带乘客)

但是,我收到一条错误消息“导入您的乘客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 替换。我错过了什么吗?我对这些东西很陌生,如果我能得到任何帮助,我将不胜感激!谢谢。

以下是在导入时收到错误的当前乘客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
4

1 回答 1

0

你应该改变这一行:

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

进入

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

并确保您使用真实项目(或 django 应用程序)的名称更改项目

于 2013-06-30T21:01:48.867 回答