前因后果

业务需要 决定升级python2.7至python3

升级之前:

[root@shanghai-adminserver ~]# python -V
Python 2.7.5

升级之后:

[root@shanghai-adminserver ~]# python -V 
Python 3.9.1 

安装步骤(原python2保留)

1、创建安装目录:

cd /usr/local
mkdir python3

2、下载安装包,解压:

wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
tar -xvf Python-3.9.1.tgz

 

3、安装相关依赖

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 libffi-devel gcc

4、编译、安装

cd Python-3.9.1    
./configure --prefix=/usr/local/python3/     # 检查编译环境/相关库文件/配置参数,生成makefile
make                             # 对源代码进行编译,生成可执行文件
make install                      # 将生成的可执行文件安装到当前计算机中指定位置

5、建立软连接

注意:如果/usr/bin 目录下已有python、pip 先删除之

ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

注意事项

1、安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法(步骤3安装依赖的时候已经安装过)

安装 libffi-devel 然后重新 make&&make install

yum install libffi-devel

2、关于_ssl模块异常的问题,由于服务器/usr/local/ssl目录下安装的不是openssl,本机openssl版本也是1.0.2,所以没有按照其他人方式进行

 

去除下面文件中关于ssl的三条注释,然后重新make&&make install

vi /usr/local/Python-3.9.1/Modules/Setup

3、升级python3之后yum无法使用的问题

 因为yum的包管理,是基于python2.x写的,跟python3有语法上的不兼容

分别修改以下yum的配置文件

将第一行的 #!/usr/bin/python 改为 #!/usr/bin/python2 (自己核实/usr/bin/目录下关于python2的情况)

vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down

 操作总结

编译、安装时可以将日志输出到日志文件中,方便后续核实错误或者缺少依赖之类的问题,逐个分析解决。

参考文章

 

  

posted on 2020-12-15 15:59  ZuoAn斜阳  阅读(103)  评论(0)    收藏  举报