我正在尝试弄清楚如何使用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打包模块的另一种方法吗?
答案 0 :(得分:3)
Python 3.7 Standard运行时是“惯用的” Python运行时,这意味着它不会自动将特殊的lib
目录添加到模块的搜索路径中。
您应该继续将私有模块“供应”到lib
目录中,但是您需要对如何导入它们进行更改。
如果您的私有软件包为foobar
,并且您已经完成pip install -t lib foobar
,则在您的项目中,而不是:
import foobar
您这样做:
import lib.foobar
(您还需要将一个空的__init__.py
文件添加到lib
目录中,以使其成为模块。)