python - 为什么 Zappa 部署缺少虚拟环境中存在的所有/大多数包?

标签 python python-3.x python-3.8 openai-api zappa

尝试通过 Zappa 将 Python 脚本部署到 AWS。脚本在本地虚拟环境(使用 virtualenv)中工作,但 Zappa 部署失败,缺少多个包。尽管进行了广泛的故障排除,但肯定遗漏了一些非常基本的东西。详情如下,任何想法表示赞赏。

错误:zappa deploy dev 错误。 zappa tail 显示 [ERROR] ModuleNotFoundError:没有名为“pandas”的模块。无论 main.py` 中的第一个导入语句是什么,它都会出错,这表明问题并非特定于 Pandas pkg。

下面包含设置 json 和项目目录结构的屏幕截图。

尝试了以下但没有成功:

  • 添加了 requirements.txt 项目目录,其中包含 pip freeze 显示的所有 localenv 包
  • 在 zappa_settings.json 中添加了“include”设置
  • zappa package生成的zip文件中出现确认的pandas和其他依赖包

已解决编辑: 项目目录太大。 AWS Lambda(以及随后的 Zappa)将项目目录(包括依赖项)限制为 512MB。探索替代云基础设施。

enter image description here

enter image description here

最佳答案

已解决:根本原因是项目目录太大。 AWS Lambda(和 Zappa)默认将项目目录(包括依赖项)限制为 512MB,并且 Zappa 的 slim_handler 不会自动绕过它。所以它看不到这些库,因为在运行时 Lambda 上没有足够的空间容纳它们。

这可以在 AWS Lambda 控制台中修复,在功能下 --> [选择您的功能] --> 配置 --> 一般配置 --> 临时存储(编辑目录大小)。

关于此错误的信息很少,所以希望这对某人有所帮助:)

关于python - 为什么 Zappa 部署缺少虚拟环境中存在的所有/大多数包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74889192/

相关文章:

python - 类型提示 lambda 函数作为函数参数

python - 使用 Python 多处理共享对象数组

python - 如何在spyder中重新打开绘图 Pane ?

Python狮身人面像: How to embed code into a docstring?

python - 高效的粒子对相互作用计算

python - 为最短路径提供与图中其余路径不同的颜色

python-3.x - 删除 Pandas 数据框中的列

python-3.x - Python Pandas : groupby one column, 只在另外一列聚合,取对应数据

使用 perl 进行格式化的 Python 子进程给出不完整的输出

python - 稀疏矩阵上 hstack 的类型错误