【问题标题】:Error on importing passenger_wsgi.py file导入passenger_wsgi.py 文件时出错
【发布时间】:2012-08-05 02:42:01
【问题描述】:

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

Update new Django and Python 2.7.* with virtualenv on Dreamhost (with 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

【问题讨论】:

  • 你是否替换了所有其他可替换项?
  • 我替换了追加行、版本行、环境行和插入行。我不确定的是插入线的作用以及我是否真的用正确的东西替换它们......
  • @sailboatlie 这些插入行确保乘客在您拨打import ...时可以找到图书馆

标签: django passenger wsgi dreamhost


【解决方案1】:

你应该改变这一行:

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

进入

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

并确保将 project 更改为您的真实项目(或 django 应用)的名称

【讨论】:

    猜你喜欢
    • 2014-06-06
    • 2013-10-09
    • 2016-01-03
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多