Python第五十一天  python2升级为python3

公司使用的生产环境系统是centos7,所以这里以centos7系统为基础,讲解将python2升级为python3的方法

centos7系统默认已经安装了python2.7,但是python2的生命周期到2020年1月1日就会终结,在这个时间点之后出现的任何问题都不会再维护

所以将现有用python2开发的系统升级为python3成为当务之急

官方文档描述如下

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.

那么,我们开始对系统的python版本进行升级,升级非常简单

1. 安装python依赖包,主要是gcc编译环境,zlib解压缩包等

yum groupinstall "Development tools" -y
yum install –y --setopt=protected_multilib=false gcc zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2. 使用源码方式编译安装python3

cd /usr/local/src
# 下载python3.7.5源码包
wget -c https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
# 解压源码包
tar -zxvf Python-3.7.5.tgz
cd Python-3.7.5
# 编译安装
./configure --prefix=/usr/local --enable-shared && make && make install echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf
# 在缓存文件/etc/ld.so.cache中追加进指定目录下的共享库
ldconfig
# 对python3可执行文件建软连接
ln -s /usr/local/bin/python3 /usr/bin/python3

3. 测试安装第三方包,python3的源码包里已经包含pip包管理工具,不需要再额外安装,也就是不需要再yum install -y  python-pip

pip3 install pandas

如果上面三个步骤都没有报错,就相当于升级成功,现在系统里面是 python2和python3并存

有朋友会问,python2和python3并存,那怎么调用python3,怎么调用python2,依赖python2的系统软件还能用吗,比如 yum

实际上,安装了python3之后,对系统原来的python2环境一点影响都没有,依赖python2的系统软件也能正常使用

通过查看/usr/bin路径下的python可执行文件得知,在系统安装好之后,默认已经存在/usr/bin/python、 /usr/bin/python2、 /usr/bin/python2.7等三个python2的可执行文件

只要不动它们,对python2环境是没有影响的,然后在安装完python3之后,做了一个软链接, /usr/bin/python3 -> /usr/local/bin/python3

ll /usr/bin/py*
-rwxr-xr-x. 1 root root 78 Jul 13 2018 /usr/bin/pydoc
lrwxrwxrwx. 1 root root 7 Nov 15 2018 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 Nov 15 2018 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Jul 13 2018 /usr/bin/python2.7
lrwxrwxrwx 1 root root 22 Dec 29 18:13 /usr/bin/python3 -> /usr/local/bin/python3

以后如果需要用python3执行脚本,只需要

python3  脚本文件名.py

要用pip安装python3的第三方包,只需要

pip3 install  第三方包名

其他的命令行参数,语法跟python2都一样,升级python3就是这么简单

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

本文版权归作者所有,未经作者同意不得转载。

Python第五十一天 python2升级为python3的更多相关文章

  1. 孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库

    孤荷凌寒自学python第五十一天初次尝试使用python连接Firebase数据库 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库服 ...

  2. Linux Python2 升级到 Python3

    国内企业服务器用 CentOS 系统的比较多,CentOS8 系统已经将系统默认 Python 版本调整为了 Python3,但是 CentOS7 的存量还是很大,毕竟对企业生产服务来说稳定大于一切, ...

  3. 自动发布工具版本从python2升级成python3后遇到的种种问题(涉及paramiko,Crypto,zipfile等等)

    从在公司实习到正式入职,一直还在被同事使用的是我写的一个自动发布工具.该工具的主要功能是:开发人员给出需要更新的代码包(zip格式),测试人员将该代码包部署到测服,这些代码包和JIRA数据库里的项目信 ...

  4. 把python2.6升级到python2.7(同样适用于把python2升级到python3)

    在启用https过程中,在生成CSR(证书请求文件)时,报错了,说python2.6已被python团队抛弃了,所以升级python到2.7 话不多说,直接上代码: 步骤1:下载python2.7.1 ...

  5. Linux Centos7之由Python2升级到Python3教程

    1.先查看当前系统Python版本,默认都是Python2.7,命令如下: [root@localhost gau]# python -V Python 2.7.5 2.安装Python3,安装方法很 ...

  6. python第五十一天----线程,Event,队列

    进程与线程的区别: 线程==指令集,进程==资源集  (线程集) 1.同一个进程中的线程共享内存空间,进程与进程之间是独立的 2.同一个进程中的线程是可以直接通讯交流的,进程与间通讯必需通过一个中间的 ...

  7. python第五十一课——__slots

    2.__slots__: 作用:限制对象随意的动态添加属性 举例: class Demo: __slots__ = ('name','age','height','weight') #实例化Demo对 ...

  8. Centos Python2 升级到Python3

    1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src #wget https://www.python.org/ftp/python/3.5.1/Python-3 ...

  9. Centos7 Python2 升级到Python3

    1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src wget https://www.python.org/ftp/python/3.7.2/Python-3. ...

随机推荐

  1. Git - 04. git 缓存

    1. 概述 简单描述, 已经被 暂存 过的文件的 操作 和 生命周期 在 缓存区 中的声明周期 暂时只与 缓存区 做交互 2. 文件生命周期 略 这个之前讲过 3. 命令 1. stage 文件 概述 ...

  2. 传奇版本中利用NPC迅速给人物加血脚本制作

    在传奇中,快速给玩家回血的脚本被广泛运用,能刺激玩家消费,怎么说呢,玩家跟人PK激情中,特别是群打,快速补血的重要性不说你也懂的. [@main]神医:“最近玛法大陆动荡不平,每天进进出出这里的伤者日 ...

  3. IDEA导入Git项目后无Git选项

  4. C# 重载与重写

    重载(overload) 指调用同一方法名,但各方法中参数的数据类型.个数或顺序不同. public static int Add(int x,int y) { return x + y; } pub ...

  5. powermt命令介绍

    转载:http://blog.itpub.net/26442936/viewspace-2153417/ 介绍 PowerPath将多路径I/O功能.自动负载平衡和路径故障切换功能集成于一身,使存储管 ...

  6. Linux动态库路径配置

    参考链接:https://blog.csdn.net/blade2001/article/details/32839937 为什么要关注动态库路径配置,是因为工作中遇到动态库依赖其他动态库,而其他动态 ...

  7. 【PAT甲级】1096 Consecutive Factors (20 分)

    题意: 输入一个int范围内的正整数,输出它最多可以被分解为多少个连续的因子并输出这些因子以*连接. trick: 测试点5包含N本身是一个素数的数据,此时应当输出1并把N输出. 测试点5包含一个2e ...

  8. 拥抱高通的联想,真的能靠5G突围?

    编辑 | 于斌 出品 | 于见(mpyujian) 2016年,对于常年自我标榜为"民族企业"的联想来说是品牌口碑的"转折之年".它在这一年的5G信道编码标准方 ...

  9. utf-8无bom格式编码

    BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在U ...

  10. linux python3编译以及 卸载,python默认为python3 ,pip默认为pip3,亲测版

    前置准备yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-de ...