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中的异常处理
Apr 28 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
python opencv 直方图反向投影的方法
Feb 24 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
详解python持久化文件读写
Apr 06 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
python add_argument()用法解析
Jan 29 Python
PyQt5 界面显示无响应的实现
Mar 26 Python
如何用python免费看美剧
Aug 11 Python
python 实现图片批量压缩的示例
Dec 18 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
javascript中强制执行toString()具体实现
2013/04/27 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
python实现八大排序算法(1)
2017/09/14 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
六十大寿答谢词
2014/01/12 职场文书
社会保险接收函
2014/01/12 职场文书
java版 简单三子棋游戏
2022/05/04 Java/Android
Mysql 一主多从的部署
2022/05/20 MySQL