我正在尝试部署一个包含大量二进制依赖项(例如numpy
,scipy
,astropy
,pandas
等)的Python软件包。由于压缩文件超过400MB,所以我必须将其大小缩小到250MB以下,才能从S3部署到lambda层。
我知道可以使用类似以下的命令删除测试、文档和pycache目录:
find -name "tests" -type d | xargs rm -rf
find -name "docs" -type d | xargs rm -rf
find -name "__pycache__" -type d | xargs rm -rf
但这还不够...
理论上可以删除 *.pyc 和 *.so 文件吗?例如,serverless-framework
与 serverless-python-requirements
提供了 slim
选项以打包依赖并删除所有 *.pyc 和 *.so 文件。但我认为 Lambda 环境需要这些文件... 如果可能,我不想使用任何框架,并且可以运行 docker 从一个适用于 Lambda 的镜像构建二进制文件(我现在正在使用 WSL)。我尝试了很多东西,但它们都不起作用,我不确定为什么...
我非常感谢任何帮助理解如何将这样一个庞大的包部署到 Lambda 中,以及哪些是可行的和不可行的。