如何为 google 应用引擎打包 python3 模块

How to package python3 modules for google app engine

我正在尝试弄清楚如何使用 Python 3(标准)向 Google App Engine 部署添加内部包。

对于 Python 2,打包模块的方式是使用本地 lib/ 文件夹和 appengine_config.py。这似乎对 Python 3 不起作用了?至少我的应用找不到 lib/ 文件夹中的模块。

对于 Python 3,可以只 pip3 install -t . 包。但这变得非常混乱,因为所有软件包都刚刚安装在应用程序根目录中,并且还将添加到我们应用程序的 git 存储库中。

我们不能使用 requirements.txt,因为该模块是内部模块,在 PyPI 上不可用。

还有其他方法可以使用 Python 3 为 Google App Engine 打包模块吗?

Python 3.7 标准运行时是 "idiomatic" Python 运行时,这意味着它不会自动将特殊的 lib 目录添加到模块的搜索路径中.

您应该继续 "vendoring" 您的私有模块到 lib 目录中,但是您需要更改导入它们的方式。

如果你的私有包是foobar,并且你已经完成了pip install -t lib foobar,那么在你的项目中,而不是:

import foobar

你会:

import lib.foobar

(您还需要将一个空的 __init__.py 文件添加到您的 lib 目录,使其成为一个模块。)