如何为Google App Engine打包python3模块

时间:2018-11-19 15:12:50

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

我正在尝试弄清楚如何使用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打包模块的另一种方法吗?

1 个答案:

答案 0 :(得分:3)

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

您应该继续将私有模块“供应”到lib目录中,但是您需要对如何导入它们进行更改。

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

import foobar

您这样做:

import lib.foobar

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