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

Python脚本虚拟环境正常运行,Docker中报AttributeError错误求助

解决Docker环境中PyJWT hashes 属性缺失的问题

核心原因

PyJWT 3.x版本对内部模块结构做了调整,移除了jwt.algorithms.hashes的直接引用。你的本地虚拟环境依赖的是2.x版本(符合>=2.8.0的范围),但Docker构建时可能自动拉取了3.x版本,导致代码兼容性报错。

解决方案

  • 锁定PyJWT版本范围
    修改Pipfile中的依赖声明,限制在2.x系列,避免自动升级到3.x:

    [packages]
    pyjwt = ">=2.8.0,<3.0.0"
    requests-oauthlib = ">=1.3.1"
    

    重新生成锁定文件:

    pipenv lock
    
  • 确保Docker构建使用锁定的依赖版本
    在Dockerfile中添加强制按lock文件安装的命令,防止依赖版本漂移:

    COPY Pipfile Pipfile.lock /app/
    WORKDIR /app
    RUN pipenv install --deploy --ignore-pipfile --system
    
  • 应急降级验证
    若已构建镜像,可进入容器检查并手动降级:

    # 进入容器
    docker exec -it <容器ID> bash
    # 查看当前PyJWT版本
    pip show pyjwt
    # 降级到2.8.0版本
    pip install pyjwt==2.8.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:05:58