WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法


Posted in Python onMarch 16, 2017

再之前同时安装 python 后 只需把环境变量PATH 里面改为

PATH=C:\Python36-32\Scripts\;C:\Python36-32\;C:\Python27\;C:\Python27\Scripts

然后把python3安装后的文件按照如下修改:

C:\Python36-32\Scripts\pip.exe 改为 C:\Python36-32\Scripts\pip3.exe

C:\Python36-32\python.exe 改为 C:\Python36-32\python3.exe

C:\Python36-32\pythonw.exe 改为 C:\Python36-32\pythonw3.exe

这样就可以再CMD 命令行下直接使用 python python3 pip pip3 等命令

因为最近重装系统,安装了python2 和python3的最新版本 python 2.7.13 和 python 3.6.0

按照上述修复该方法,python pip python3 命令工作正常,但 pip3 执行时显示下列错误:

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

显然是建立进程时没有找到进程相关文件啊。想办法吧。

发现 C:\Python36-32\Scripts 目录下有同样图标及KB数相同的文件文件名不一样,调用的功能也不一样的几个exe文件:

easy_instal3l.exe

easy_install-3.6.exe

pip.exe

根据经验猜想这几个EXE文件其实是同一个EXE文件加上不同的资源或者在调试破解领域里叫附加资源去执行不同python 脚本,顺手用7z打开证实了我的猜想

先去google一会找pip 这个exe的源代码,找了一会儿没找到,我就直接用IDA PRO F5 ,此EXE大概逻辑是找EXE最后多少字节以 特殊符号 分割开头的一个字符串并建立进程附加参数并执行。

用HEX编辑器打开 pip.exe  翻到最后部分

WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法

看红色圈起来的部分,发现这里面是写死了路径的,应该是python安装时附加的这个字符串,OK,直接把

c:\python36-32\python.exe 改为 c:\python36-32\pytho3.exe 保存。

然后 复制 C:\Python36-32\python3.exe 改为 C:\Python36-32\pytho3.exe

你没看错,去掉了n,因为原来字符串python.exe 有10个字符,我们通常在修改EXE时为了工作正常不产生数据偏移之类的

错误要保证字符串的长度及位置,为了偷懒我直接改为 pytho3.exe  这样可以工作正常。

下一步时找到这个pip.exe “壳”的代码和 安装程序什么是偶附加这个资源,看看能不能提一个bug修复下把他变成自动获取当前exe路径的上级路径的python3的位置。

(显然python3是我重命名的,这个思路不好)

相关资源参考:

https://github.com/pypa/setuptools/blob/master/msvc-build-launcher.cmd

https://github.com/pypa/setuptools/blob/master/launcher.c

https://www.python.org/dev/peps/pep-0397/

https://bitbucket.org/pypa/distlib/src/e4339220120d334fb9030303b8e919594acb829d/PC/?at=default

Python 相关文章推荐
python 的列表遍历删除实现代码
Apr 12 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
利用python实现汉字转拼音的2种方法
Aug 12 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
Python猴子补丁知识点总结
Jan 05 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
Python如何识别银行卡卡号?
Jun 10 Python
Django卸载之后重新安装的方法
Mar 15 #Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 #Python
200行自定义python异步非阻塞Web框架
Mar 15 #Python
Python实现简易端口扫描器代码实例
Mar 15 #Python
Python使用sftp实现上传和下载功能(实例代码)
Mar 14 #Python
Python实现Youku视频批量下载功能
Mar 14 #Python
Python实现视频下载功能
Mar 14 #Python
You might like
php堆排序实现原理与应用方法
2015/01/03 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
JQuery 入门实例1
2009/06/25 Javascript
jQuery UI-Draggable 参数集合
2010/01/10 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
python图形用户接口实例详解
2019/12/16 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
英语课前三分钟演讲稿
2014/08/19 职场文书
食品安全演讲稿
2014/09/01 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
小学生通知书评语
2014/12/31 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
房屋所有权证明
2015/06/19 职场文书
2016大学先进团支部事迹材料
2016/03/01 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
python通过函数名调用函数的几种方法总结
2021/06/07 Python
在CSS中使用when/else的方法
2022/01/18 HTML / CSS