python-3.x - 如何为谷歌应用引擎打包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.7 标准运行时是一个“惯用的”Python 运行时,这意味着它不会自动将特殊lib
目录添加到模块的搜索路径中。
您应该继续将您的私有模块“供应”到一个lib
目录中,但您需要更改导入它们的方式。
如果您的私有包是foobar
,并且您已经完成pip install -t lib foobar
,那么在您的项目中,而不是:
import foobar
你做:
import lib.foobar
(您还需要将一个空__init__.py
文件添加到您的lib
目录中,以使其成为一个模块。)
推荐阅读
- python - 生成已知总数的随机整数数组
- javascript - 重复的两个和问题 - 更惯用的 Javascript 解决方案
- azure - Azure 中 .NET Core 3.0 的运行时堆栈
- javascript - jQuery - 两个 .on('change') 事件不能同时工作。一次仅适用于每个
- maven - “莫名其妙”的maven返回状态码:什么会导致maven返回1?
- stm32 - 如何更改 usart 中断(HAL)中的全局变量(stm32f407)
- c++ - 为什么每次我编辑任何副本时,我在不同文件夹中的所有 CMakelist.txt 文件都会被覆盖?
- python - Sympy 的精确解决方案
- android - RecyclerView 中的 Android ViewPager
- java - 在这种情况下,对于我的 UML 图,我的依赖关系是否应该从类到接口或类到具体类型?