Windows系统下多版本pip的共存问题详解


Posted in Python onOctober 10, 2017

前言

可能很多人一看到这个标题直接就关闭了,这么简单和low的问题有必要说出来吗?一看就知道是个Python的小白。如果你是这么想的话,那么就没有必要看下去了,因为对你来说也没有什么帮助。

这个问题,确实很简单,简单的不能再简单。但是在实际工作中确实会遇到。

实话说,对于经常在gentoo、archlinux这类版本上玩的人来说,完全可以不考虑这个问题。但是,你的同事或朋友却不一定与你一样。

在这里,我们要解决2个问题:

  • 多版本pip共存问题
  • 多版本Python共存问题

说到这里,可能会有人说直接用pyenv不就好了,省时又省力。但是,pyenv不支持Windows系统。

实话说,虽然你百度一下,确实有N篇文章说的头头是道,但是当你去实践的时候就会发现根本就是不行的。

多版本pip共存

在这里我们在一台已经安装了Python3.5.3的Windows的系统上安装Python2的版本。

安装完成后,我们切换到Python2安装目录下的Scripts目录下,将其中的pip.exe文件修改为pip27.exe或直接将其删除,然后我们运行如下的命令:

pip2 -V 
pip 8.1.1 from C:\Python27\lib\site-packages (python 2.7) 
 
pip -V 
pip 9.0.1 from C:\Python35\lib\site-packages (python 3.5)

可以看到,这样我们就解决了多版本pip共存的问题了。

多版本Python共存

下面我们来看多版本Python共存的问题。网上很多教程让我们把不同Python版本的解释器文件直接进行修改,结果Python版本是可以共存了,但是pip却无法使用了。

对于这种情况,我们有2种方式,1种是在多版本pip共存的情况下,使用如下的方式启动Python不同版本:

py -2 
py -3

这样就分别启动了Python2和Python3。

实话说,这种方式对于处女座的人来说,觉得并不是很完美。下面我们来看1种在多版本pip共存情况下实现多版本Python共存的实现。

我们直接将各个版本中的Python解释器文件python.exe复制1份,然后分别修改为python2.exe和python3.exe。

这样我们就完成了版本共存的问题了,如下图所示:

Windows系统下多版本pip的共存问题详解

在这里由于最后安装的是Python2版本,并且自动将其添加到环境变量中,因为默认输入Python时启动的是Python2。

当然,上述的问题只是其中的1种解决方式,如果套用数学的术语,只是所有解集中的1种。

对于Python这样的语言,如果只会1种方式,往往都是在打酱油的。一般情况下,同1个问题至少有2-3种的方式,选取其中最好的1种方式才是正道。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python的Django框架中settings文件的部署建议
May 30 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
详解Python核心对象类型字符串
Feb 11 Python
python对文件目录的操作方法实例总结
Jun 24 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
python实现在一个画布上画多个子图
Jan 19 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
解决使用Pandas 读取超过65536行的Excel文件问题
Nov 10 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 #Python
遗传算法之Python实现代码
Oct 10 #Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 #Python
Python使用getpass库读取密码的示例
Oct 10 #Python
Python 逐行分割大txt文件的方法
Oct 10 #Python
Python输出带颜色的字符串实例
Oct 10 #Python
python中使用正则表达式的连接符示例代码
Oct 10 #Python
You might like
15种PHP Encoder的比较
2007/03/06 PHP
php a simple smtp class
2007/11/26 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
Jquery ui css framework
2010/06/28 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python解决网站的反爬虫策略总结
2016/10/26 Python
Python内置模块logging用法实例分析
2018/02/12 Python
python编写简单端口扫描器
2019/09/04 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
土木工程专业个人求职信
2013/12/05 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
学习经验交流会策划书
2015/11/02 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
五年级数学教学反思
2016/02/16 职场文书