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

Dan*_*ruz 7 python amazon-web-services pysftp aws-lambda

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

Unable to import module 'lambda_function': No module named '_cffi_backend'
Run Code Online (Sandbox Code Playgroud)

当我pysftp从导入时aws-lambda。我正在使用python3.6并且仅导入pysftp其他内容

我已经尝试安装 cffi

python3 pip install cffi
Run Code Online (Sandbox Code Playgroud)

eno*_*ted 9

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

在这个问题主题中找到了解决方案。

  • 这解决了我的问题。当我的 cffi 编译为 3.6 时,我使用的是 Python 3.8。您可以通过名称来判断您的 cffi 文件是针对哪个版本的 Python 进行编译的(例如 `_cffi_backend.cpython-36m-x86_64-linux-gnu.so`)。您可以在 lambda 控制台上降级到 Python 3.6(例如 https://<region>.console.aws.amazon.com/lambda/home?region=<region>#/functions)。 (2认同)

Ade*_*uga 5

这对我有用,而且很容易修复。也许它可以帮助别人。

尝试后 -
pip3 -vvv install --upgrade --force-reinstall cffi

pip 安装 cffi

我从工作环境中获取了以下模块 _cffi_backend.cp39-win_amd64.pyd 并将其放置在存在问题的缺失位置的站点包中。