我试图了解将带有 Python 包的 .pyc 文件包含到 AWS Lambda 中的确切效果。
我能找到的关于这个的极少数引用资料说不需要在包中包含 .pyc 文件。但是,当我不包含这些文件时,我发现我的 Lambda 函数性能受到巨大影响。
尝试在我的包中包含一个库(例如 Jinja2),当省略其 .pyc 文件时,import jinja2
所花费的时间总是超过 3 秒。
当我确实提供 .pyc 文件时,第一次执行仍然需要 3 秒,但之后,它会下降到 100-200 毫秒(我猜直到函数最终被卸载?)。
我找到了这个 SO question这可能表明 AWS Lambda 无法保存自己的编译文件,这有意义吗?
我的问题是 - 是否有关于在 AWS Lambda 上使用 Python 的 .pyc 文件的任何明确信息来源?有没有办法让 AWS Lambda 保存自己的 .pyc 文件?还是我应该继续将它们包含在我的包裹中?
最佳答案
我不这么认为,.pyc
文件是 Byte code Python 解释器将源代码编译为哪个,然后执行此代码。
考虑到这一点,我们可以控制“python 虚拟机运行哪些文件”。
我认为最好的解决方案就像你说的那样:
just continue to include them with my package.
一旦你这样做了,代码执行器就已经有了你的字节码文件。
关于python - AWS Lambda 和 Python 的 .pyc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664124/