pip、pip3、pip3.6均默认安装Python2.7版本包的问题咨询
解决pip全关联Python2.7的问题
看来你遇到了多Python版本环境里的典型坑——不管是pip、pip3还是pip3.6,居然全绑定到了Python2.7的pip上,导致装包全往旧版本里塞,确实头疼。下面给你几个实用的解决办法:
方法一:直接通过Python解释器调用pip(最稳妥)
绕开系统里混乱的pip命令关联,直接用目标Python版本的解释器来调用pip,从根源上指定安装环境:
- 安装Python3.6的包:
python3.6 -m pip install 你的包名 - 安装Python2.7的包:
python2 -m pip install 你的包名
这种方式完全不会出错,因为你明确告诉了系统要用哪个Python环境的pip。
方法二:重新安装对应版本的pip
既然现有的pip3和pip3.6都绑定错了,那就把它们卸载后重新安装,让它们和正确的Python版本关联:
- 先卸载错误关联的pip(以Debian/Ubuntu系统为例):
如果是其他系统,用对应的包管理命令或者直接删除错误的pip可执行文件。sudo apt remove python3-pip - 用Python3.6自带的
ensurepip模块重新安装绑定到它的pip:
执行完后再运行python3.6 -m ensurepip --upgradepip3.6 -V,应该就能看到它指向/usr/local/lib/python3.6/dist-packages了。
方法三:调整环境变量PATH的优先级
有可能是Python2.7的pip所在路径在PATH里的优先级比Python3的高,导致所有pip命令都优先调用Python2的版本:
- 先查看当前PATH的内容:
echo $PATH - 找到Python3.6的bin目录(通常是
/usr/local/lib/python3.6/bin或者/usr/bin/python3.6所在的bin目录),把它放到PATH的最前面。可以修改~/.bashrc或者~/.profile文件,添加一行:export PATH=/usr/local/lib/python3.6/bin:$PATH - 保存后执行
source ~/.bashrc让修改生效,之后再试pip3.6 -V应该就正常了。
验证一下:不管用哪种方法,修复后运行pip3.6 -V,如果输出显示pip X.X.X from /usr/local/lib/python3.6/dist-packages (python 3.6),就说明问题解决啦!
内容的提问来源于stack exchange,提问作者Shawn Zamperini
相关产品推荐
相关产品推荐

