从 aws-lambda 导入 pysftp 时如何修复导入错误 "No module named '_cffi_backend' "

How to fix import error "No module named '_cffi_backend' " when import pysftp from aws-lambda

我正在编写一个简单的脚本来从 aws-lambda 连接我的 sftp 服务器,我得到了

Unable to import module 'lambda_function': No module named '_cffi_backend'

当我从 aws-lambda 导入 pysftp 时。我正在使用 python3.6 并且仅导入 pysftp 仅此而已

我已经尝试安装 cffi

python3 pip install cffi

您需要在 Lambda 程序包中包含第三方模块。转到 pip 为您的模块保存数据的目录,找到您正在使用的模块,复制它们的目录并包含在 Lambda zip 文件中。然后在 Lambda 上再次部署并 运行 它。应该可以。

您需要将依赖项上传到lambda 函数。您需要做的就是创建一个文件夹,我们将其命名为 'test' 并将您的 python 代码放入其中。然后,将所需的 python 软件包安装到同一文件夹中。您可以使用以下命令执行此操作:

pip install --target <path directory> <package name>

这会将所需的软件包安装到指定目录中。在您的情况下,命令将是

pip install --target C:\test requests

我在 python 3.7 (cffi==1.11.2, cryptography==2.1.2, paramiko==2.3.1) 上遇到了同样的问题并解决了 降级到python 3.6.

在此 issue 主题中找到了解决方案。