如何在 Google App Engine 中使用 ujson

How to use ujson with Google App Engine

根据official list of built-in librariesujson可用。但是,以下 app.yaml 片段:

libraries:
- name: ujson
  version: '1.35'

...生成此错误:

Usage: appcfg.py [options] update <directory> | [file, ...]

appcfg.py: error: Error parsing ./app.yaml: the library "ujson" is not supported
  in "./app.yaml", line 89, column 1.

如果我尝试使用其他支持的 C 库,如 numpy,它工作正常。我是 运行 SDK 159.0.0(最新),甚至可以在 google-cloud-sdk/lib/googlecloudsdk/third_party/appengine/api/appinfo.py 中看到一个 "ujson" 条目。

知道为什么 ujson 不可用吗?

ujson v1.35 已添加到 Python SDK 版本 1.9.55 中的应用引擎运行时。

此 SDK 版本直到 v161.0.0 (2017-06-28):

才包含在 gcloud SDK 中

Updated App Engine components for Python to version 1.9.55. Please visit the release notes for details


轶事:

我们中的一些人仍然更喜欢 appcfg.py update . 而不是 gcloud app deploy app.yaml。(我们是一个稀有且濒临灭绝的品种 :D)。

因此,过去我注意到我使用的 appcfg.py 工具是旧应用引擎工具的旧版本。没有所有 gcloud components update 令人敬畏的东西。您每次都必须下载二进制文件。

which appcfg.py 应该显示正在使用的确切版本,对我来说是:

$ ~/google_appengine/appcfg.py

我不能说我没有得到足够的警告。此外,我每次 运行 gcloud components update:

时都会看到这个 advice/warning

WARNING: There are older versions of Google Cloud Platform tools on your system PATH. Please remove the following to avoid accidentally invoking these old tools:

/Users/jeff/google_appengine/endpointscfg.py
/usr/local/bin/endpointscfg.py
/Users/jeff/google_appengine/dev_appserver.py

所以更新到最新版本,更新您的路径以指向正确的 appcfg,并享受 ujson 或任何掉落时的好东西。

$ ~/google-cloud-sdk/platform/google_appengine/appcfg.py update .