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中文乱码的解决方法
Nov 04 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python日期的加减等操作的示例
Aug 15 Python
Python实现打印螺旋矩阵功能的方法
Nov 21 Python
pycharm下查看python的变量类型和变量内容的方法
Jun 26 Python
python实现浪漫的烟花秀
Jan 30 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python requests抓取one推送文字和图片代码实例
Nov 04 Python
python ftplib模块使用代码实例
Dec 31 Python
keras之权重初始化方式
May 21 Python
python实现数学模型(插值、拟合和微分方程)
Nov 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实现有趣的人品测试程序实例
2015/06/08 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
浅析python递归函数和河内塔问题
2017/04/18 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
基于Python函数和变量名解析
2019/07/19 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
SportsDirect.com马来西亚:英国第一体育零售商
2018/11/21 全球购物
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
Linux的主要特性
2014/10/06 面试题
博士学位自我鉴定范文
2013/12/26 职场文书
小学生成长感言
2014/01/30 职场文书
工会主席事迹材料
2014/06/03 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
连锁超市项目计划书
2014/09/15 职场文书
2014司机年终工作总结
2014/12/05 职场文书
师范生教育见习总结
2015/06/23 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python