You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安装praw遇阻:matplotlib依赖问题及nose、tornado安装失败求助

解决安装PRAW时的Matplotlib依赖冲突问题

这明显是旧版依赖包的兼容性坑——matplotlib 1.3.1对依赖的版本要求实在太苛刻,不仅和你当前的numpy版本不匹配,连安装它要求的nose、tornado都卡壳了。下面给你几个按优先级排序的解决方案:

1. 用虚拟环境隔离依赖(最推荐)

虚拟环境能把你的Reddit机器人依赖和系统全局Python环境彻底隔开,从根源避免版本冲突,步骤超简单:

  • 创建并激活虚拟环境:
    # Python3.3+自带venv,直接创建
    python -m venv reddit-bot-env
    # Windows系统激活
    reddit-bot-env\Scripts\activate
    # Linux/macOS系统激活
    source reddit-bot-env/bin/activate
    
  • 激活后先把pip更到最新版:
    pip install --upgrade pip
    
  • 最后直接装PRAW就行:
    pip install praw
    
    虚拟环境里的依赖是全新的,pip会自动拉取兼容的最新版包,完全不会触发旧版matplotlib的问题。

2. 升级Matplotlib到兼容当前Numpy的版本

如果不想折腾虚拟环境,可以直接把matplotlib升到支持numpy 1.8.0rc1的版本——matplotlib 1.4.x及以上都能兼容,执行命令:

pip install --upgrade matplotlib

升级完成后,再补装nose、tornado和PRAW:

pip install nose tornado praw

3. 强制安装匹配matplotlib 1.3.1的依赖版本(备选)

要是升级matplotlib行不通,就只能顺着旧版matplotlib的要求来:

  • 先装符合要求的numpy版本(比如1.7.x):
    pip install numpy==1.7.1
    
  • 再装nose和tornado:
    pip install nose tornado
    
  • 最后安装PRAW:
    pip install praw
    
    不过这种方法可能会影响你环境里其他依赖numpy的包,所以除非万不得已,还是优先用虚拟环境。

额外小提示

如果安装nose/tornado时还是失败,大概率是pip版本太旧导致的依赖解析问题,先执行这条命令更新工具链:

pip install --upgrade pip setuptools wheel

更新完再尝试安装就顺畅多了。

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

火山引擎 最新活动