如何为 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
目录,使其成为一个模块。)
我正在尝试弄清楚如何使用 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
目录,使其成为一个模块。)