无法导入模块“lambda_function”:无法从“cryptography.hazmat.bindings._rust”(未知位置)导入名称“exceptions”

问题描述 投票:0回答:2

我有一个从 CBOR 生成 CSR 的 python 脚本。它在本地设备上运行良好。但是,当我尝试将其设为 lambda 函数并在 AWS 上执行时,收到一条错误消息“无法导入模块‘lambda_function’:无法从‘cryptography.hazmat.bindings._rust’导入名称‘例外’(未知位置)” .

我没有使用层,我只是将模块安装在可部署包中。我可以确认 excepts.pyi 位于 cryptography.hazmat.bindings._rust 内部。我不知道是什么导致了这个问题。谁能给我指导一下吗,谢谢。

aws-lambda python-3.7
2个回答
0
投票

花了几天时间尝试解决导入问题,但仍然没有成功。我最终使用容器镜像部署了 python lambda 函数,所有问题都解决了。

我按照此处的说明进行操作https://docs.aws.amazon.com/lambda/latest/dg/python-image.html#python-image-instructions.


0
投票

我通过以下方式修复了此错误:

  1. 在 Linux 环境中构建 lambda 层。
  2. 还要确保 AWS lambda 中的 Python 版本与您在本地构建 lambda 层的位置相同。
  3. 使用以下 pip 语法来构建包。
pip install --upgrade <pakage names> --platform manylinux2014_x86_64 --only-binary=:all: -t .
© www.soinside.com 2019 - 2024. All rights reserved.