【问题标题】:How to use lxml version 3.7.3 on app engine?如何在应用引擎上使用 lxml 版本 3.7.3?
【发布时间】:2017-11-09 17:08:09
【问题描述】:

在他们的Built-in Third-party 库页面上,它说支持lxml 3.7.3,但我似乎找不到使用它的方法。

如果我写app.yaml:

- name: lxml
  version: latest

当我在应用程序中登录etree.LXML_VERSION 时,我得到(2, 3, 0, 0)

将版本专门设置为"3.7.3"(而不是latest)似乎不起作用。当我尝试部署时,gcloud 说:

ERROR: (gcloud.app.deploy) An error occurred while parsing file: [... /app.yaml]
lxml version "3.7.3" is not supported, use one of: "2.3", "2.3.5"
  in "... app.yaml", line 17, column 1

我已在 ./lib 文件夹中本地安装 lxml,但部署时忽略该文件夹。

我做错了吗?

【问题讨论】:

  • 我相信您不能使用在 App Engine 中使用 C 的非内置 Python 模块,因此这可能就是它被忽略的原因。 (明显的例外是内置的 3rd 方库。)
  • 嗯,就是这样。我正在尝试使用内置库。文档说应用引擎支持 3.7.3,但我似乎无法使用该版本。
  • 哦,我看现在应该支持了...cloud.google.com/appengine/docs/standard/python/tools/…
  • 感谢@JeffO'Neill 的链接。它实际上给了我检查 sdk 版本的想法。我的 apt-get 没有更新 gcloud sdk,所以我使用的是旧版本。

标签: python google-app-engine


【解决方案1】:

问题似乎是由于旧的 google cloud sdk 造成的。

SDK 是使用apt-get 安装的,但不知何故它没有得到更新。这还包括一个较旧的 Python SDK

此时latest Python SDK 是1.9.62,我用的是1.9.52

更新 sdk 似乎可以解决问题

sudo apt-get update && sudo apt-get install google-cloud-sdk

【讨论】:

    【解决方案2】:

    这不是第一次出现文档、云 SDK 中包含的内容、GAE 语言特定 SDK 中包含的内容以及 GAE 中实际可用的内容(生产中)之间存在不一致的情况。例如,请参阅PyCharm - Can't create App Engine Application using DJango

    您收到的部署错误消息表明 3.7.3 版本实际上并不存在于 GAE 上,尽管在文档中被标记为可用。

    lxml 库在一些需要特别注意的特殊库列表中。很可能是因为它们不是“没有 C 扩展的纯 Python 代码”,因此它们不能与其他库一起包含在 SDK 中,因此它们需要单独安装在本地系统上。来自Using built-in bundled libraries with the local development server(查看整个部分以获取相关信息):

    运行时提供的许多内置库都是 自动提供给本地开发服务器。但是,那 必须先在本地安装以下内置库,然后才能安装 将它们与本地开发服务器一起使用:

    现在,如果您真的想要 3.7.3 版本,您可能会很不走运:如果它确实不是“没有 C 扩展的纯 Python 代码”,那么您也无法将其供应到您的应用程序中.尽管如此,还是值得一试。一个新的尝试,注意你还需要:

    • 将其从 app.yaml 文件的 libraries: 部分中取出 - 您不再请求 GAE 提供的库
    • 完成the entire vendoring in procedure(例如,您没有提到创建appengine_config.py 文件)。

    如果这不起作用,那么您将不得不接受部署错误消息中提到的可用版本之一。您需要:

    • 将该版本添加到app.yaml 文件的libraries: 部分
    • 在本地系统上安装该版本
    • 如果您愿意,请尝试放弃销售

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多