如何将特定版本的pip绑定到对应的Python版本?
解决Python 2.7和3.6的pip版本切换问题
嘿,我来帮你搞定这个pip的版本区分问题!你已经用别名搞定了Python版本切换,那pip的配置思路其实差不多,不过有几个细节得注意:
首先得说清楚为什么你现在运行pip和pip3都指向Python3.6的pip:这是因为安装Python3.6的时候,它的Scripts文件夹(里面放着pip.exe)被加到了系统环境变量PATH的最前面,所以系统优先找到它的pip;而pip3本身就是Python3对应的pip命令,自然也指向3.6版本。
接下来给你两种靠谱的解决方法:
方法一:给pip设置专属别名(和你切换Python的方式一致)
首先要确认两个版本pip的实际路径:
- Python2.7的pip一般在
c:\python27\Scripts\pip.exe(你之前提到的site-packages是安装包的存放目录,不是pip可执行文件的位置哦) - Python3.6的pip在
c:\python36\Scripts\pip.exe
然后在PowerShell里执行以下命令设置别名:
set-alias py2pip c:\python27\Scripts\pip.exe set-alias py3pip c:\python36\Scripts\pip.exe
这样之后,你运行py2pip就会调用Python2.7的pip,py3pip调用Python3.6的pip啦。
⚠️ 注意:这个别名只在当前PowerShell会话生效,如果想每次打开PowerShell都能用,需要把这两行命令添加到PowerShell的配置文件里:
- 先运行
$PROFILE查看配置文件的路径 - 如果文件不存在,用
New-Item -Path $PROFILE -ItemType File -Force创建 - 打开这个文件,把两行别名命令粘贴进去保存即可
方法二:直接用Python版本调用pip(更稳妥,不用管路径)
其实还有个更省心的方法,不需要单独给pip设别名——直接用你已经配置好的Python别名来调用pip:
- 要使用Python2.7的pip,运行:
py2 -m pip install 你的包名 - 要使用Python3.6的pip,运行:
py3 -m pip install 你的包名
这种方法的好处是完全不用纠结pip的路径,python -m pip会自动调用对应Python版本的pip,从根源上避免版本混乱,推荐你试试这个!
内容的提问来源于stack exchange,提问作者Shift 'n Tab




