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

如何解决Termsteel中PyJWT等依赖版本冲突且不修改代码?

解决Termsteel项目中PyJWT版本冲突且不修改代码的可行方案

你的核心问题是flask-jwt-login==0.0.5依赖PyJWT==1.6.4,但项目指定了PyJWT==2.4.0,调整版本又会影响argon2-cffi==21.3.0等模块,同时不想修改代码。以下是几个可行方案:

方案1:虚拟环境下放松PyJWT版本限制

  1. 创建并激活独立虚拟环境(避免污染全局依赖):
    python -m venv termsteel-env
    # Windows系统激活
    termsteel-env\Scripts\activate
    # Linux/macOS系统激活
    source termsteel-env/bin/activate
    
  2. 修改requirements.txt,删除PyJWT==2.4.0这一行,保留其他所有依赖项
  3. 执行安装命令:
    pip install -r requirements.txt
    
    此时pip会自动安装flask-jwt-login要求的PyJWT==1.6.4,安装完成后验证argon2-cffi等模块是否能正常运行。如果测试通过,这是最安全的解决方案。

方案2:强制安装指定版本,跳过依赖冲突检查(应急场景)

直接执行强制安装命令,忽略PyJWT的版本冲突:

pip install -r requirements.txt --ignore-installed PyJWT

这个命令会强制安装你指定的PyJWT==2.4.0,但flask-jwt-login可能因版本不兼容出现运行错误。安装完成后务必全面测试JWT相关功能(生成、验证token等),如果功能正常即可使用。

方案3:手动拆分依赖安装,跳过flask-jwt-login的依赖检查

  1. 先单独安装flask-jwt-login,不自动安装其依赖:
    pip install flask-jwt-login==0.0.5 --no-deps
    
  2. 再安装requirements.txt中的所有其他依赖:
    pip install -r requirements.txt
    
    这种方式让flask-jwt-login使用你指定的PyJWT==2.4.0,同样需要测试JWT功能是否正常。如果flask-jwt-login的代码没有依赖PyJWT 1.6.4的特定特性,这个方法大概率可行。

方案4:替换停止维护的flask-jwt-login(需确认代码兼容性)

flask-jwt-login==0.0.5是多年未更新的老旧包,已停止维护。可以替换为兼容PyJWT 2.x且API接近的Flask-JWT-Extended:

  1. 修改requirements.txt,删除flask-jwt-login==0.0.5和PyJWT==2.4.0,添加Flask-JWT-Extended==4.4.4(该版本兼容你的Flask==1.0.2)
  2. 执行安装:
    pip install -r requirements.txt
    
    注意:此方案需要确认项目中使用flask-jwt-login的代码是否能直接兼容Flask-JWT-Extended,如果API差异较小可能无需大幅修改代码,若差异大则不适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:45:33