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使用os模块和fileinput模块来操作文件目录
Jan 19 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
python 字符串追加实例
Jul 20 Python
python实现超市商品销售管理系统
Oct 25 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 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
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
PHP 程序员应该使用的10个组件
2009/10/31 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
PHP类的声明与实例化及构造方法与析构方法详解
2016/01/26 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
jquery 插件学习(二)
2012/08/06 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
python的Template使用指南
2014/09/11 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
python tkinter组件使用详解
2019/09/16 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
介绍一下linux的文件权限
2012/02/15 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
2016教师节问候语
2015/11/10 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP