【问题标题】:How to install libraries on Google App Engine for Python3如何在 Google App Engine for Python3 上安装库
【发布时间】:2021-01-07 09:04:11
【问题描述】:

我有一个 Python3 项目,目前托管在 GCloud 上。我希望通过允许基于模板生成报告来增强这个项目。

我正在调查 WeasyPrint

WeasyPrint 的问题在于它有很多手动安装所需的要求,而这些要求无法通过pip 完成。一个特别的例子是GDK-PixBuf,它不仅需要sudo-install(?),还需要在环境变量中引用PATH

我是 GCloud 部署的相对新手,我不确定如何在 GCloud 服务器中执行此操作,因此我(最初)不愿意使用 WeasyPrint

最重要的是,在阅读如何做到这一点时,Google themselves only has documentation for it in Python2 which says it(and Cairo) are not supported,没有关于 Python 3 的内容,这让我更加困惑。

The Python3 documentation itself is not helping much.

我发现了一些关于这个的东西,但除了它的年龄,it's more catered towards Python2

【问题讨论】:

  • 您是否尝试过类似用于 Google Cloud Storage 的 Python 客户端来利用有效的解决方案? [链接]googleapis.dev/python/storage/latest/index.html
  • 不能说我明白你的意思。另外,我认为这没有帮助。
  • 我能够在 G Cloud 上的 Google Colab 上安装 WeasyPrint。大多数依赖项都是作为其中的一部分安装的。就像你提到的 GDK-PixBuf 没有被覆盖,但是你仍然可以使用这个 [链接] ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.40/… 进行安装,并且对于路径参考,你需要将你的 python.exe 安装文件移动到服务器。

标签: python python-3.x google-app-engine gcloud weasyprint


【解决方案1】:

您将无法在 GAE 标准中使用 Wea​​syPrint,因为它依赖于 GAE 的 Python 运行时缺少的一些基于 C 的包(例如 cairo、Pango、GDK-PixBuf) - link.

但是,您可以使用 GAE 灵活 环境,因为它允许使用自定义运行时。在 GAE flexible 中,您可以通过 Dockerfile 安装所需的组件。请看我前段时间写的关于这个话题的example

【讨论】:

    【解决方案2】:

    App Engine 标准不允许您安装超出pip 可以为您做的事情的其他软件,所以我认为它不能满足您的需求。 App Engine flexible 确实允许这样做,但我认为Cloud Run 会更合适,更容易学习和使用。 Cloud Run 让您指定一个容器,然后它会构建、部署和管理该容器以响应 Web 请求。您可以在构建容器时安装所需的二进制文件并设置 PATH。

    请参阅 Python 的 Cloud Run quickstart 获取示例 Dockerfile,该文件展示了如何在构建期间设置环境变量和运行 Linux 命令(例如安装所需的软件)。

    【讨论】:

      猜你喜欢
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 2016-05-23
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多