【问题标题】:How to get WeasyPrint working with Google App Engine如何让 WeasyPrint 与 Google App Engine 一起工作
【发布时间】:2014-05-31 02:30:01
【问题描述】:

我是 GAE、WeasyPrint 和 Python 的新手。我意识到 WeasyPrint 依赖于很多依赖项。我查看了 Windows 的安装文档。但我似乎无法弄清楚如何让它在 GAE 上运行。有没有办法下载包含所有依赖项的版本并将其复制到我的项目文件夹中?

【问题讨论】:

  • 可以在GAE柔性环境中使用自定义运行时来实现。有关更多上下文,请参阅我编写的 this 示例。

标签: google-app-engine weasyprint


【解决方案1】:

无法直接在 appengine 上运行 WeasyPrint。您应该始终阅读有关依赖项的文档。 WeasyPrint 依赖于 cairo 和 pango,它们是基于“c”的库。您只能运行您提供的纯 python 库。有一些直接支持的 python 库确实有一些受支持的“c”,如 PIL 和 libxml。但这对 WeasyPrint 来说还不够。

【讨论】:

  • 感谢您的反馈。但从外观上看,我相信在 GAE 上使用 xhtml2pdf 是可能的。不过,我在依赖项方面遇到了同样的问题。关于如何让它工作的任何建议?
  • 我正在研究 Python3.7 运行时是否仍然如此,它允许使用 requirements.txt 指定依赖关系。正如指定依赖项页面 (cloud.google.com/appengine/docs/standard/python3/…) 中所述,“您可以使用任何与 Linux 兼容的 Python 包,包括需要本机 C 扩展的包。”。然而,Weasyprint 似乎不包括 cairo 和 pango 作为其安装的一部分,而是依赖于已经安装它们的系统。这似乎不起作用。
  • 我认为我们可以在 flex env 中设置自定义运行时,并将外部依赖项添加到要安装在 GAE 上的 dockerfile 中。我在使用 weasyprint 的 dockerfile 时遇到问题。为此,您必须在 app.yaml 中将运行时从 python 更改为自定义
猜你喜欢
  • 2011-01-03
  • 2013-12-28
  • 2017-02-18
  • 2022-10-14
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
相关资源
最近更新 更多