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

Python导入Redis报No module named 'redis.commands'错误解决方法

问题原因

触发ModuleNotFoundError: No module named 'redis.commands'报错的核心原因分为两类:

  • 安装的redis-py(即Python环境下名为redis的官方客户端包)版本过低:redis.commands的模块化目录结构是redis-py 4.0.0及以上版本才正式加入的,3.x及更早的历史版本包内不存在该子模块,即使执行过依赖安装,也无法匹配导入路径。
  • 依赖安装环境与代码运行环境不匹配:例如在全局Python环境中安装了高版本redis,但运行代码时调用的是虚拟环境、其他版本号的Python解释器,实际加载的仍是环境内的低版本redis包。
可行解决方案
  • 升级redis-py到4.0+稳定版本(优先推荐)
    执行对应包管理命令完成升级:
    # 通用pip环境
    pip install --upgrade redis
    # 系统同时存在多Python版本时使用pip3对应Python3环境
    pip3 install --upgrade redis
    # Anaconda/Miniconda环境
    conda install -c conda-forge redis-py>=4.0.0
    
    升级完成后执行pip show redis,确认返回信息中的Version字段值大于等于4.0.0即可正常使用原有导入语句。
  • 排查多环境不匹配问题
    如果升级后仍然抛出相同报错,先确认当前代码运行实际调用的解释器路径,在代码开头加入以下语句并运行:
    import sys
    print(sys.executable)
    
    拿到输出的解释器绝对路径后,通过该解释器直接调用pip执行升级,避免依赖被安装到其他无关环境:
    # 将<你的解释器绝对路径>替换为上一步打印出的实际路径
    <你的解释器绝对路径> -m pip install --upgrade redis
    
  • 历史版本兼容方案
    如果项目存在历史依赖限制,无法将redis-py升级到4.0+版本,需要额外安装已适配旧版本的rejson独立包,同时修改导入语句:
    pip install rejson
    
    对应代码中的导入部分修改为:
    import redis
    from rejson import Path
    
    注意:rejson包已停止长期维护,仅适合临时兼容场景,长期运行仍建议升级redis-py到官方维护的正式新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:57:20