pip3.6安装包存入Python2.7路径问题求助
解决pip3.6安装包指向Python2.7路径的问题
我之前也碰到过类似的Python版本与pip路径混乱的坑,给你几个实用的解决办法,按顺序尝试应该能搞定:
1. 最直接的临时解决方案:通过Python3.6调用pip
绕开可能混乱的pip命令,直接用目标Python版本来启动pip模块,这是最稳妥的方式,绝对不会装错路径:
python3.6 -m pip install scikit-learn
原理是:python3.6 -m pip会强制使用Python3.6自带的pip工具,安装包会自动存入Python3.6对应的site-packages目录,完全和Python2.7隔离。
2. 修复pip3.6的指向问题
你说pip3.6看似指向正确,但实际可能是软链接错了,先验证一下:
- 查看pip3.6的实际路径:
which pip3.6 - 查看pip3.6绑定的Python版本:
pip3.6 --version
如果输出里显示的是Python2.7,说明pip3.6的链接指向了错误的Python版本,需要修复:
- 先删除旧的错误链接:
sudo rm /usr/bin/pip3.6 - 重新给Python3.6的pip建立正确的软链接(先通过
which python3.6找到你的Python3.6路径,比如/usr/bin/python3.6):sudo ln -s $(python3.6 -m pip --version | awk '{print $NF}') /usr/bin/pip3.6
或者更简单的,直接重新给Python3.6安装pip:
python3.6 -m ensurepip --upgrade
这个命令会确保Python3.6拥有独立且正确的pip工具。
3. 长期根治:使用虚拟环境
如果经常需要在不同Python版本间切换,虚拟环境是最佳实践,彻底隔离各个版本的依赖:
- 创建Python3.6的虚拟环境:
python3.6 -m venv my_py36_env - 激活虚拟环境:
source my_py36_env/bin/activate
激活后命令行前缀会变成(my_py36_env),此时直接用pip install安装包,所有依赖都会存入这个虚拟环境的专属目录,完全不会影响系统的Python2.7或其他版本。
4. 检查pip配置文件的异常设置
虽然你说配置文件标注了正确版本,但还是建议检查是否有全局/用户级的配置强制指定了安装路径:
- 查看pip3.6的所有配置:
pip3.6 config list
如果看到类似install.target的配置项指向了Python2.7的dist-packages路径,就取消这个设置:
pip3.6 config unset install.target
也可以手动检查配置文件:
- 用户级配置:
~/.config/pip/pip.conf - 全局配置:
/etc/pip.conf
确保文件里没有target或install-option之类的设置指向错误路径。
内容的提问来源于stack exchange,提问作者Ricky Sahu
相关产品推荐
相关产品推荐

