网上有很多解决方案,说对了问题,但是给错了药方。这个错误确实是因为pip升级版本不兼容导致的,但是为什么新版升级后旧版依然还在内?为什么会冲突呢?为什么没有全部替换呢?
我遇到的问题是这样的,我的pip最初是通过apt安装的(Ubuntu 16.04和18.04的apt安装的pip版本一般是8.x,9.x,而最新版已经是19.x了)
apt install python3-pip
但是却通过pip本身来升级pip
pip3 install -U pip
pip在通过pip安装新版后,并不会去卸载旧版,因为旧版是通过apt安装的,不在pip的管理范围内。其实升级的时候一般pip都会提醒的,如下:
Installing collected packages: pip
Found existing installation: pip 8.1.1
Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
Successfully installed pip-19.1.1
这时你会发现系统里已经存在了多个pip,通过whereis pip3
就可以发现。我的上述命令都是通过root账户执行的,所以两个pip分别在/usr/bin/pip3
和/usr/local/bin/pip
。解决办法也很简单,只需要在升级完成后把apt安装的pip卸载掉即可。
apt purge -y python3-pip
当然,如果你用的是Anaconda里面的pip,则可能有别的解决方法,总之版本不兼容导致的pip错误一般都是系统里出现了两个pip导致的,要把其中一个卸载干净,才能保证其他的正常使用。
网友评论