如何移除旧版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_profile或source ~/.zshrc让修改立即生效。
- 用bash就编辑
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




