首页 > 解决方案 > 如何为谷歌应用引擎打包python3模块

问题描述

我试图弄清楚如何使用 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.xgoogle-app-enginegoogle-cloud-platformgoogle-app-engine-python

解决方案


Python 3.7 标准运行时是一个“惯用的”Python 运行时,这意味着它不会自动将特殊lib目录添加到模块的搜索路径中。

您应该继续将您的私有模块“供应”到一个lib目录中,但您需要更改导入它们的方式。

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

import foobar

你做:

import lib.foobar

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


推荐阅读