在Dreamhost Python网页上获取"Premature end of script headers"



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

只有当我尝试生成PDF时,才会出现此错误。该代码在我的本地环境中运行得很好,但在主机上不起作用。我又和Dreamhost的人见面了,他们说这对他们来说没什么。考虑到已经工作的代码根本没有更改,这很奇怪。我试着调试了一下,但没有出现任何错误。

我已经尽了我所能来解决这种情况,但我一直没有成功。行动方针是改变这个主机(我知道,我一开始使用Dreamhost是一个错误。但当我这样做的时候,我才刚刚开始,我几乎一无所知)。但我现在需要一个更快的解决方案,我想知道是否有人遇到过这个问题,也许可以帮助我解决这个问题。

为了详细说明,我使用的是Python 2.7,用于创建PDF的库是Flask Weasyprint(0.5)

/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。当我制作这个网络应用程序时,Dreamhost只接受Python 2,我对创建VPS或类似的东西几乎一无所知。我计划很快将主机更改为虚拟机,并在Python3中运行该项目。但在我继续之前,我现在需要一个解决方案

任何帮助都将不胜感激。如果你需要更多的细节,请告诉我。

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

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