【问题标题】:Getting "Premature end of script headers" on Dreamhost Python Webpage在 Dreamhost Python 网页上获取“脚本头过早结束”
【发布时间】:2019-01-29 18:30:54
【问题描述】:

我有一个使用 Python 2.7(我知道)的 Python Flask 制作的网页,托管在 Dreamhost 上。直到几天前,我完全没有问题。然后,我开始在我的页面上收到权限错误。我不知道发生了什么,但我得到了 Dreamhost 实时聊天,他们通过对我的文件执行 chmod 755 解决了这个问题。一切都恢复正常,但经过进一步检查,在我的网页中生成 PDF 文档的所有部分都已停止工作。我在错误日志中得到的错误是“脚本头过早结束”。

此错误仅在我尝试生成 PDF 时出现。该代码在我的本地环境中完美运行,但不适用于托管。我再次与 Dreamhost 的人取得了联系,他们说这与他们无关。考虑到已经工作的代码根本没有改变,这很奇怪。我尝试自己调试,但没有收到任何错误。

我已经尝试了几乎所有我能想到的来解决这种情况,但我没有成功。行动方案是更改此托管(我知道,首先使用 Dreamhost 是我的错误。但是当我这样做时,我才刚刚开始,而且我知之甚少)。但我目前需要一个更快的解决方案,我想知道是否有人遇到过这个问题,也许可以帮助我解决这个问题。

详细说明,我使用的是 Python 2.7,用于创建 PDF 的库是 Flask-Weasyprint (0.5)。我尝试自己运行 wsgi 文件,我收到以下消息:

/path/to/local/lib/python2.7/site-packages/WeasyPrint-0.39-py2.7.egg/weasyprint/text.py:29: UserWarning: There are known rendering problems with Cairo <= 1.14.0 warnings.warn('There are known rendering problems with Cairo <= 1.14.0') /path/to/local/lib/python2.7/site-packages/WeasyPrint-0.39-py2.7.egg/weasyprint/fonts.py:46: UserWarning: @font-face support needs Pango >= 1.38 warnings.warn('@font-face support needs Pango >= 1.38')

我知道我应该改用 Python 3。当我制作这个 Web 应用程序时,Dreamhost 只接受 Python 2,而我几乎不知道创建 VPS 或类似的东西。我计划尽快将托管更改为虚拟机并在 Python 3 中运行该项目。但在继续之前,我现在需要一个解决方案。

任何帮助将不胜感激。如果您需要更多详细信息,请告诉我。

【问题讨论】:

    标签: python flask wsgi dreamhost


    【解决方案1】:

    这可能是由于Passenger 文件的路径中不包含您的项目目录。一种解决方案是将以下内容添加到您的passenger_wsgi.py 文件中:

    sys.path.append(os.getcwd()+"/<project_name>")
    

    【讨论】:

      猜你喜欢
      • 2013-01-16
      • 1970-01-01
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 2011-11-01
      • 2012-06-25
      • 2012-04-07
      相关资源
      最近更新 更多