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和GO语言实现的消息摘要算法示例
Mar 10 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
Python使用crontab模块设置和清除定时任务操作详解
Apr 09 Python
Python中Numpy ndarray的使用详解
May 24 Python
简单了解Python生成器是什么
Jul 02 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
python之拟合的实现
Jul 19 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
Python如何执行系统命令
Sep 23 Python
python随机打印成绩排名表
Jun 23 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
js实现的动画导航菜单效果代码
2015/09/10 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[03:12]TI9战队档案 - Virtus Pro
2019/08/20 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
2017/11/30 Python
对python调用RPC接口的实例详解
2019/01/03 Python
python ---lambda匿名函数介绍
2019/03/13 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
django中media媒体路径设置的步骤
2019/11/15 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python里反向传播算法详解
2020/11/22 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
用Python实现屏幕截图详解
2022/01/22 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记