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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
python采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
Python多线程编程(六):可重入锁RLock
Apr 05 Python
Python实现的数据结构与算法之基本搜索详解
Apr 22 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
Python中用max()方法求最大值的介绍
May 15 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
python 常用的基础函数
Jul 10 Python
详解通过API管理或定制开发ECS实例
Sep 30 Python
pandas ix &iloc &loc的区别
Jan 10 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
python数字类型和占位符详情
Mar 13 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中函数内引用全局变量的方法
2008/10/20 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
pycharm 使用心得(五)断点调试
2014/06/06 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python编程之序列操作实例详解
2017/07/22 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
高职助产应届生自荐信
2013/09/24 职场文书
信息技术教学反思
2014/02/12 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
单位在职证明书
2014/09/11 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
党性分析自查总结
2014/10/14 职场文书
给领导敬酒词
2015/08/12 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书