pip升级后Import Error:cannot import name main解决方案

网上有很多解决方案,说对了问题,但是给错了药方。这个错误确实是因为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导致的,要把其中一个卸载干净,才能保证其他的正常使用。

你可能感兴趣的:(pip升级后Import Error:cannot import name main解决方案)