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 相关文章推荐
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
Python (Win)readline和tab补全的安装方法
Aug 27 Python
python是否适合网页编程详解
Oct 04 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
深入了解Python 变量作用域
Jul 24 Python
详解Python自动化之文件自动化处理
Jun 21 Python
python数字图像处理之对比度与亮度调整示例
Jun 28 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实现通过照片获取ip地址
2016/04/26 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
使用bootstrap3开发响应式网站
2016/05/12 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python修改操作系统时间的方法
2015/05/18 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
django加载本地html的方法
2018/05/27 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
Django框架模板介绍
2019/01/15 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
盖尔斯工厂店:GUESS Factory
2020/01/21 全球购物
卖车协议书范本4篇
2014/10/01 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
财产分割协议书
2016/03/22 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP