从aws-lambda导入pysftp时,如何解决导入错误“没有名为'_cffi_backend'的模块”

时间:2019-08-09 21:57:39

标签: python amazon-web-services aws-lambda pysftp

我正在研究一个简单的脚本,以从aws-lambda连接我的sftp服务器,并且得到

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

当我从pysftp导入aws-lambda时。我正在使用python3.6,仅导入pysftp

我已经尝试安装cffi

python3 pip install cffi

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

pip install --target C:\test requests

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

我通过在 AWS 控制台中为现有层创建新版本来解决此问题。添加新版本后,我编辑了当前图层的版本。这解决了我的问题。