在Dreamhost Python网页上获取“脚本头的结尾过早”

时间:2019-01-29 18:30:54

标签: python flask wsgi dreamhost

我有一个使用Python Flask和Python 2.7(我知道)制作的网页,该网页托管在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')

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

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

1 个答案:

答案 0 :(得分:0)

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

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