如何将具有已编译二进制文件的 Python 程序包添加到我的部署程序包并使其与 Lambda 兼容?

上次更新时间:2018 年 9 月 18 日

我使用 pip 来安装包含已编译代码的 Python 程序包,但我的部署程序包不兼容 AWS Lambda。如何解决此问题?

简短描述

有些 Python 程序包含有已编译的代码,例如 NumPy。您可以使用 pip install 命令来安装这些程序包:

pip install module-name -t /path/to/project-dir

但如果您使用 pip 来安装这些程序包,则这些程序包将会下载并为您的架构编译一个 module-name 包。除非您在 Linux 操作系统上运行命令,否则这会导致您的部署程序包与 Lambda 不兼容。

要使部署程序包与 Lambda 兼容,请下载一个叫做 wheel (.whl) 的预编译程序包。解压缩 /path/to/project-dir 上的 wheel 文件,不要使用 pip install

解决方法

1.    打开 module-name pypi.org 页面。例如:

https://pypi.org/project/numpy/

2.    选择 Download files

3.    下载:

  • 对于 Python 2.7,请下载 module-name-version-cp27-cp27mu-manylinux1_x86_64.whl
  • 对于 Python 3.6,请下载 module-name-version-cp36-cp36m-manylinux1_x86_64.whl

4.    解压缩 /path/to/project-dir 文件夹中的 wheel 文件。

当 wheel 文件解压缩完成后,您的部署程序包将与 Lambda 兼容。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?