You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda函数无法导入paramiko模块,创建Layer后仍报错求助

Lambda Layer导入Paramiko失败问题排查与解决

问题回顾

Lambda函数代码开头:

from paramiko import SSHClient, AutoAddPolicy, RSAKey

按官方指南在python/目录执行pip3 install paramiko -t .后打包成Layer,运行时一直提示「没有名为paramiko的模块」,安装日志显示依赖已成功安装,但存在本地环境的依赖冲突提示(不影响Paramiko安装)。

流程存在的问题

  1. 打包结构不符合Lambda要求:Lambda Layer需要将Python包放在python/lib/pythonX.X/site-packages/层级下(X.X对应函数使用的Python版本),直接安装在python/根目录会导致Lambda无法识别模块路径。
  2. Python版本/架构不匹配:本地安装的包可能和Lambda运行时的Python版本、CPU架构(x86_64/arm64)不一致,尤其是Paramiko依赖的cryptography、bcrypt等含C扩展的库,跨环境会出现兼容性问题,间接引发模块找不到的错误。

解决建议

1. 修正打包目录结构

以Python 3.9为例:

  • 创建层级目录:
    mkdir -p python/lib/python3.9/site-packages
    
  • 指定目录安装Paramiko,同时匹配Lambda环境:
    pip3 install paramiko -t python/lib/python3.9/site-packages/ --platform manylinux2014_x86_64 --only-binary=:all: --python-version 3.9
    
  • 打包时进入python/的上级目录,执行:
    zip -r paramiko-layer.zip python/
    
    确保zip包根目录直接包含python/文件夹。

2. 用Docker模拟Lambda环境安装(推荐)

避免本地与Lambda环境差异导致的兼容问题:

  • 拉取对应Python版本的Lambda构建镜像:
    docker pull public.ecr.aws/sam/build-python3.9
    
  • 挂载本地目录运行容器:
    docker run -v "$PWD":/var/task public.ecr.aws/sam/build-python3.9 /bin/bash
    
  • 在容器内创建目录并安装依赖:
    mkdir -p python/lib/python3.9/site-packages
    pip install paramiko -t python/lib/python3.9/site-packages/
    
  • 退出容器后按上述步骤打包zip,上传为Layer。

3. 检查Layer关联配置

  • 确认Lambda函数已正确关联该Layer;
  • 确认Layer的兼容运行时列表包含函数使用的Python版本。

内容的提问来源于stack exchange,提问作者Difettoso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:15:44