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

如何移除旧版Python/Pip安装的软件包?解决跨Python版本无法卸载更新包的问题

解决跨Python版本的软件包管理问题(以youtube-dl为例)

从你给出的命令输出能一眼揪出问题根源:你的pip3关联的是Python 3.9环境,但系统默认调用的youtube-dl却是Python 3.7目录下的旧版本——你升级了3.9里的包,但实际运行的是3.7里的旧程序,所以才会出现版本不匹配的诡异情况。

下面给你几个明确的解决步骤,一步步来就能搞定:

1. 精准操作对应Python版本的包(最稳妥的方法)

别再用pip3这种可能混淆环境的命令了,直接指定Python版本调用pip是Python官方推荐的包管理姿势,绝对不会搞混环境:

  • 如果你想更新当前默认调用的Python 3.7里的youtube-dl,执行:
    python3.7 -m pip install --upgrade youtube-dl
    
  • 如果想彻底卸载3.7里的旧版本,执行:
    python3.7 -m pip uninstall youtube-dl
    
  • 同理,要是想操作Python 3.9的包,就用:
    python3.9 -m pip install --upgrade youtube-dl
    

2. 调整系统PATH优先级(让默认工具匹配你想用的Python版本)

如果以后想默认用Python 3.9的工具(包括youtube-dl),可以调整系统的PATH环境变量,让3.9的二进制文件目录优先级更高:

  • 先查看当前的PATH设置:
    echo $PATH
    
  • 临时调整(仅当前终端会话有效):
    export PATH="/usr/local/opt/python@3.9/bin:$PATH"
    
  • 永久生效(重启终端后依然有效):
    根据你使用的shell类型,把上面的命令加到对应配置文件里:
    • 用bash就编辑~/.bash_profile
    • 用zsh就编辑~/.zshrc
      加完后执行source ~/.bash_profilesource ~/.zshrc让修改立即生效。

3. 验证问题是否解决

执行下面的命令确认:

youtube-dl --version
which youtube-dl

如果版本变成了你升级的2021.4.26,且which输出的路径是Python 3.9的目录,就说明问题搞定了。

小提醒

以后安装或管理Python包时,尽量都用pythonX.Y -m pip的形式,比如python3.9 -m pip install requests,这样能彻底避免跨版本的包管理混乱,省心很多。

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

火山引擎 最新活动