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中利用函数装饰器实现备忘功能
Mar 30 Python
Python中endswith()函数的基本使用
Apr 07 Python
简单介绍Python中的decode()方法的使用
May 18 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python装饰器三种装饰模式的简单分析
Sep 04 Python
python二维图制作的实例代码
Dec 03 Python
python爬取youtube视频的示例代码
Mar 03 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 Python
python数字图像处理之图像的批量处理
Jun 28 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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP Token(令牌)设计
2008/03/15 PHP
php session和cookie使用说明
2010/04/07 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
python实现二分查找算法
2020/09/18 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
工程项目经理岗位职责
2013/12/15 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers