Centos7 Python2 升级到Python3

用习惯了linux的程序员们都知道,所以原来linux内核3以上的都自带python2 ,然而,python3发布至今也十余年了,2020年1月1日  Python 2终于走到了尽头,官方宣布不在维护python2。所以升级势在必然。 

博主环境:腾讯云  Centos7.5

一、更新python2 至python3

1. 从Python官网到获取Python3的包, 切换到目录/usr/local/src

wget https://www.python.org/ftp/python/3.7.2/Python-3.7.5.tar.xz

由于博主是1M学习用的比较low带宽的云主机,下载python3.7安装包比较慢,最高15kb/s 最低1.8kb/s,当然重要原因也是因为python官方镜像源在国外有关,总之,这一步花了40分钟。

2. 使用命令如下命令进行解压缩:

xz -d Python-3.7.5.tar.xz

tar -xf Python-3.7.5.tar

3. 在/usr/local路径下创建目录--python37, 为第4步的安装目录

mkdir /usr/local/python37

4. 编译安装(会自动安装pip-7.1.2)

yum install -y zlib zlib-devel

yum install libffi-devel -y

复制代码

cd  Python-3.7.5

./configure --prefix=/usr/local/python37

make all

make install

make clean

make distclean

复制代码

5. 进入安装的绝对路径,检查是否安装成功

/usr/local/python37/bin/python3.7 -V

Python 3.7.2

6.查看环境变量,启动python时默认按照PATH的顺序进行查找,在/usr/bin中的python此时为Python2.7的。

echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/gordon/bin

7.修改软连接,启动python时指向python3.7

(1) 备份python

mv /usr/bin/python /usr/bin/python.bak

(2) 修改软连接

ln -s /usr/local/python37/bin/python3 /usr/bin/python

8. 验证默认是否启动python3.7

python -V

 Python 3.7.5

9. 升级完python之后,yum就不能用了,需要修改/usr/bin/yum,改为使用python2.7

vim /usr/bin/yum

#!/usr/bin/python2.7

10.[root@centos75 ~]# vim /usr/libexec/urlgrabber-ext-down

#!/usr/bin/python2


二、下载和安装pip

1、安装必要的依赖包(一般巨头云镜像包自带了,除非原生版)

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2、下载安装setuptools

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz

cd setuptools-19.6

python3 setup.py build

python3 setup.py install

3、下载安装PIP

wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-19.2.3.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb

tar -zxvf pip-19.2.3.tar.gz

cd pip-19.2.3

python setup.py build

sudo python setup.py install

4、设置软连接(非常关键)

ln -sv /usr/local/python37/bin/pip /usr/bin/pip

三、升级Openssl(解决No module named _ssl问题)

1.下载最新版openssl

https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

tar xf openssl-1.1.1-pre8.tar.gz

2.编译安装

cd openssl-1.1.1-pre8

./config--prefix=/usr/local/openssl no-zlib #不需要zlib

make

make install

3.备份原配置

 mv/usr/bin/openssl  /usr/bin/openssl.bak

mv/usr/include/openssl/  /usr/include/openssl.bak

4.新版配置

#将安装好的openssl 的openssl命令软连到/usr/bin/openssl

[root@aaa]# ln-s/usr/local/openssl/include/openssl    /usr/include/openssl

#软链到升级后的libssl.so

[root@aaa]# ln-s/usr/local/openssl/lib/libssl.so.1.1    /usr/local/lib64/libssl.so

#将安装好的openssl命令软连到/usr/bin/openssl

[root@aaa]#  ln-s/usr/local/openssl/bin/openssl   /usr/bin/openssl

5.修改系统配置

#写入openssl库文件的搜索路径

echo"/usr/local/openssl/lib">>/etc/ld.so.conf

#使修改后的/etc/ld.so.conf生效 

ldconfig-v

6.查看openssl版本

openssl version

OpenSSL1.1.1-pre8(beta)20Jun2018

重新安装python

注意:需要指定openssl的安装路径,--with-openssl

./configure--prefix=/usr/local/python37--with-openssl=/usr/local/opensslmakemake install

你可能感兴趣的:(Centos7 Python2 升级到Python3)