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编写android截屏脚本双击运行即可
Jul 21 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
python按照多个条件排序的方法
Feb 08 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
Python实现结构体代码实例
Feb 10 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
vue实现购物车加减
2020/05/30 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
Python中生成Epoch的方法
2017/04/26 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
Delphi软件工程师试题
2013/01/29 面试题
模具专业推荐信
2013/10/30 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
幼师小班个人总结
2015/02/12 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
JS的深浅复制详细
2021/10/16 Javascript
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis