Python2及Python3如何实现兼容切换


Posted in Python onSeptember 01, 2020

由于历史原因,Python有两个大的版本分支,Python2和Python3,又由于一些库只支持某个版本分支,所以需要在电脑上同时安装Python2和Python3,因此如何让两个版本的Python兼容,如何让脚本在对应的Python版本上运行,这个是值得总结的。

对于Ubuntu 16.04 LTS版本来说,Python2(2.7.12)和Python3(3.5.2)默认同时安装,默认的python版本是2.7.12。

Python2及Python3如何实现兼容切换

当然你也可以用python2来调用。

Python2及Python3如何实现兼容切换

如果想调用python3,就用python3.

Python2及Python3如何实现兼容切换

对于Windows,就有点复杂了。因为不论python2还是python3,python可执行文件都叫python.exe,在cmd下输入python得到的版本号取决于环境变量里哪个版本的python路径更靠前,毕竟windows是按照顺序查找的。比如环境变量里的顺序是这样的:

Python2及Python3如何实现兼容切换

那么cmd下的python版本就是2.7.12。

Python2及Python3如何实现兼容切换

反之,则是python3的版本号。

这就带来一个问题了,如果你想用python2运行一个脚本,一会你又想用python3运行另一个脚本,你怎么做?来回改环境变量显然很麻烦。

网上很多办法比较简单粗暴,把两个python.exe改名啊,一个改成python2.exe,一个改成python3.exe。这样做固然可以,但修改可执行文件的方式,毕竟不是很好的方法。

我仔细查找了一些python技术文档,发现另外一个我觉得比较好的解决办法。

借用py的一个参数来调用不同版本的Python。py -2调用python2,py -3调用的是python3.

Python2及Python3如何实现兼容切换

Python2及Python3如何实现兼容切换

当python脚本需要python2运行时,只需在脚本前加上,然后运行py xxx.py即可。

#! python2

当python脚本需要python3运行时,只需在脚本前加上,,然后运行py xxx.py即可。

#! python3

就这么简单。

同时,这也完美解决了在pip在python2和python3共存的环境下报错,提示Fatal error in launcher: Unable to create process using '"'的问题。

当需要python2的pip时,只需

py -2 -m pip install xxx

当需要python3的pip时,只需

py -3 -m pip install xxx

python2和python3的pip package就这样可以完美分开了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
Python实现查看系统启动项功能示例
May 10 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
python去除拼音声调字母,替换为字母的方法
Nov 28 Python
python中时间模块的基本使用教程
May 14 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
python中的逆序遍历实例
Dec 25 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
python for循环赋值问题
Jun 03 Python
Python学习之迭代器详解
Apr 01 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 #Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 #Python
Python如何截图保存的三种方法(小结)
Sep 01 #Python
Python连接mysql方法及常用参数
Sep 01 #Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 #Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 #Python
Django如何批量创建Model
Sep 01 #Python
You might like
php5.5新数组函数array_column使用
2013/07/08 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
2016/04/23 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python实现统计单词出现的个数
2015/05/28 Python
python解析基于xml格式的日志文件
2017/02/25 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
党员批评与自我批评发言材料
2014/10/14 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
小平小道观后感
2015/06/09 职场文书
鸡毛信观后感
2015/06/11 职场文书
环境卫生整治简报
2015/07/20 职场文书