开发者问题收集

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

2023-07-14
3229

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

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

在此处输入图片描述

2个回答

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

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

tamptek
2023-07-18

我通过以下步骤修复了此错误:

  1. 在 Linux 环境中构建 lambda 层。
  2. 还要确保 AWS lambda 中的 Python 版本与构建 lambda 层的本地版本相同。
  3. 使用以下 pip 语法构建包。
pip install --upgrade <pakage names> --platform manylinux2014_x86_64 --only-binary=:all: -t .
Ehsan
2024-03-28