python2和python3的pip冲突解决

对于学习python的人来说,python2和python3必不可少,但当同时安装了两者后,又会带来一些冲突问题,比如shell中输入python,shell就会以最先在环境变量中找到的python为准,这样很多情况下并非是我们所想。而很多人的解决办法是修改其中一个python.exe的名字,比如修改为python2.exe之类。这样做的确解决了输入python所带来的冲突问题,但这同时也带来了隐患,即直接导致python 2的pip不再可用,输入pip2将会产生错误:Fatal error in launcher: Unable to create process using '"'。
那如何解决这一连串的冲突问题呢?
办法一(来自社区):
事实上这个问题几年以前Python社区就给出了官方解决方案,只不过国内一直没有注意到罢了。
我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。
如果你有一个Python文件叫 hello.py,那么你可以这样用Python2运行它:
py -2 hello.py
类似的,如果你想用Python3运行它,就这样:
py -3 hello.py
不过每次运行都要加入参数-2/-3还是比较麻烦,所以py.exe这个启动器允许你在代码中加入说明,表明这个文件应该是由python2解释运行,还是由python3解释运行。说明的方法是在代码文件的最开始加入一行:
#! python2
或者:
#! python3
分别表示该代码文件使用Python2或者Python3解释运行。这样,运行的时候你的命令就可以简化为:
py hello.py

pip冲突解决办法:
当Python2和Python3同时存在于windows上时,它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:
py -2 -m pip install XXXX
-2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。如果是为Python3安装软件,那么命令类似的变成:
py -3 -m pip install XXXX

办法二(改进版):
办法一虽说可行,但是要在shell中输入时还是稍显麻烦,如果我还是想直接输入python2就能启动对应的解释器呢?对于这个问题,我最开始是创建了对应的快捷方式,然后修改其名字为python2.exe,再将其所在目录添加到环境变量,然而当在shell中输入时,居然提示找不到python2命令!所以我只能猜测shell中不能直接执行快捷方式了。郁闷了一会儿,我又想到了批处理脚本,直接将python.exe所在的绝对路径写入其中就行了,比如:C:\python27\python。然后再修改文本名为python2.bat,再把其所在路径添加到环境变量,最后测试,终于一切OK了 :D,同理,pip也可采取类似的办法解决(不过一般安装时已经有了一个pip2了,直接将其添加到环境变量中即可了)。这样一来,命令python和pip在shell下的冲突问题就完美解决了 :D 。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值