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

AWS Lambda中Python函数jwt模块导入失败问题求助

解决AWS Lambda中Python函数的jwt模块导入错误

以下是针对你遇到的No module named 'jwt'错误的排查和解决步骤:

  • 确认运行时与层的Python版本完全匹配
    检查Lambda函数的运行时版本(比如Python 3.9),确保你创建层时使用的Python版本和它完全一致。如果Lambda用的是3.10,而层里的包是用3.9安装的,就会出现模块找不到的问题。可以通过pip install pyjwt -t ./python/lib/pythonX.X/site-packages/指定版本安装,将X.X替换为Lambda的运行时版本。

  • 验证Lambda层的打包结构
    层的zip包必须遵循正确的目录结构:解压后直接是python/lib/pythonX.X/site-packages/,里面包含jwt相关文件。打包时要进入python文件夹的上级目录,执行zip -r jwt-layer.zip python/,避免zip包顶层多一层文件夹(比如不要把包含python的文件夹整个压缩)。可以本地解压层的zip包,确认结构是否符合要求。

  • 修正PyJWT的导入和使用代码
    PyJWT 2.x版本重构了API,不再支持from jwt import JWT的导入方式。如果你的层安装的是PyJWT 2.x+,需要修改代码:

    # 替换原来的from jwt import JWT
    import jwt
    
    # 创建JWT的代码替换为
    encoded_jwt = jwt.encode(payload, signing_key, algorithm='RS256')
    

    如果你一定要用旧的JWT类,需要在层中安装PyJWT 1.x版本(比如pip install pyjwt==1.7.1)。

  • 直接打包依赖到函数代码(替代层)
    如果层的配置始终有问题,可以直接把依赖和代码打包在一起:

    1. 本地新建一个文件夹,将你的函数代码放入其中
    2. 执行命令安装依赖到该文件夹:
      pip install pyjwt -t ./你的文件夹路径
      
    3. 将整个文件夹压缩成zip包,上传到Lambda控制台替换原有代码包。
  • 检查层的关联状态
    进入Lambda函数的控制台页面,在“层”标签下确认你添加的JWT层已经被正确关联,没有被误删除或未启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:33:12