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 FTP操作类代码分享
May 13 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
Python中Subprocess的不同函数解析
Dec 10 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
python代码区分大小写吗
Jun 17 Python
python中sys模块是做什么用的
Aug 16 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
Python中Qslider控件实操详解
Feb 20 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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)
2010/09/04 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
利用浮层使select不可选的实现方法
2016/12/03 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python:slice与indices的用法
2019/11/25 Python
python如何基于redis实现ip代理池
2020/01/17 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
2014年老干部工作总结
2014/11/21 职场文书
超市员工管理制度
2015/08/06 职场文书
任命书格式范文
2015/09/22 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
JavaScript流程控制(分支)
2021/12/06 Javascript
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python