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 条件判断的缩写方法
Sep 06 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
Python采用Django开发自己的博客系统
Sep 29 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
学习Python列表的基础知识汇总
Mar 10 Python
Python通过文本和图片生成词云图
May 21 Python
pandas数据处理之绘图的实现
Jun 15 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 Python
关于Python中进度条的六个实用技巧分享
Apr 05 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
php实现保存周期为1天的购物车类
2017/07/07 PHP
YII框架http缓存操作示例
2019/04/29 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
用javascript控制iframe滚动的代码
2007/04/10 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
快速解决js开发下拉框中blur与click冲突
2016/10/10 Javascript
学习Node.js模块机制
2016/10/17 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
jquery登录的异步验证操作示例
2019/05/09 jQuery
pageGroup.js实现分页功能
2019/07/27 Javascript
Python标准库内置函数complex介绍
2014/11/25 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python里运用私有属性和方法总结
2019/07/08 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
新闻专业个人求职信
2013/12/19 职场文书
企业法人授权委托书
2014/09/25 职场文书
CSS子盒子水平和垂直居中的五种方法
2022/07/23 HTML / CSS
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android