windows下多python版本下的一个pip错误

来源:互联网 发布:java孤傲苍狼 博客园 编辑:程序博客网 时间:2024/05/20 15:56

错误 如下

Fatal error in launcher: Unable to create process using '"'

原因分析
此错误主要是由于在装了多个版本的python后,由于要能在统一系统中多个版本python兼容,改变了pip所在版本的python的名称所致。
具体展示
本人电脑中安装的是python 3.5.2,Anaconda中python版本也为3.5.2,但是,由于系统环境变量配置中将python的环境变量放到了Anaconda的前面,每次在cmd中输入python都会进入正常的python,而不是Anaconda。

C:\Users\Administrator>python -VPython 3.5.2

通过将Anaconda中的python改为condapython,实现了在cmd中进入不同的python。

C:\Users\Administrator>condapython -VPython 3.5.2 :: Anaconda 4.2.0 (64-bit)

但是,此举也导致了一个问题,那就是pip工具(之前为了能调用不同的pip工具,已将Anaconda中pip改为condapip,以免被python中pip覆盖)无法正常使用
C:\Users\Administrator>condapip -V
Fatal error in launcher: Unable to create process using ‘”’
将Anaconda中的condapython的名称改回python之后

C:\Users\Administrator>condapip -Vpip 9.0.1 from d:\important software\anaconda3\lib\site-packages (python 3.5)

如果只是想修复此错误,将重命名的python改回来即可,但是,这样我便无法在cmd中通过python或者condapython之类的命令调用不同的python,所以,python的名字还是要改的,那么,改名之后如何解决pip的报错呢,上网查了一些资料,有些说环境变量的配置有问题,还有些建议更新pip工具,通过前面的分析我们可以得知,这些答案都是有问题的,其真正的原因出自python名称的改变。
解决方案在这里。。。。。。。。
本人欲将Anaconda中的python改为condapython以实现cmd中调用不同python,改名后,修改Anaconda中的pip工具(用二进制编辑器),如下图所示
用010查看pip二进制文件
通过用将pip工具以二进制文件形式打开,我们发现问题所在,原来pip工具在运行过程中调用了python程序,这就好办了,我们只需要将pip工具中这个路径改成相应的改名后python的路径就行,如下图所示
改后pip
修改pip的二进制文件后,再次在cmd中运行condapip -V

C:\Users\Administrator>condapip -Vpip 9.0.1 from d:\important software\anaconda3\lib\site-packages (python 3.5)

OK,问题解决了,不同版本之间的python问题修改方法与此相同。。。