CentOS7安装Python3新版本

11 篇文章 0 订阅
5 篇文章 0 订阅

前言

  • 问题来源于业务需求,需要在CentOS7.9系统上验证功能性问题。安装CentOS的虚拟机后发现CentOS自带的Python3版本是Python3.6.8,与业务需要的Python版本(>=3.7)不符,本文以3.8.6为例,安装该Python版本。
  • 确定了问题,接着确定问题的解决思路。想过三种解决思路:①从已有的Python3.6.8升级版本;②单独新增Python3.8.6版本;③通过Anaconda安装Python3.8.6;本问题以第二种方法为切入点详细记录相关过程

1. 操作步骤

1.1 获取Python安装包
1.2 建立Python安装目录
  • 本文拟用/usr/local/python3.8作为Python的安装目录,并确保该目录存在

1.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
# yum install install gcc libffi-devel zlib*
1.4 编译安装包
  • 进入Python安装包的下载目录,解压缩,进入解压缩后的目录,进行编译安装
# tar -Jxvf Python-3.8.6.tar.xz
# cd Python-3.8.6
# ./configure --prefix=/usr/local/python3.8
# make && make install
1.5 创建软链接
  • 在创建软链接之前,可先行确认软链接是否存在
# ln -s /usr/local/python3.8/bin/python3 /usr/bin/python3
# ln -s /usr/local/python3.8/bin/pip3 /usr/bin/pip3

2. 遇到的问题

warnings

2.1 SSL模块不可用的警告
2.1.1 使用–with-openssl扩展命令重新编译Python安装包
  • 由于CentOS7.9系统已安装了openssl,且安装路径为/usr/bin/openssl,所以使用自带的openssl 1.0.2版本
# openssl version
# cd Python-3.8.6
# ./configure --prefix=/usr/local/python3.8 --with-openssl=/usr/local/openssl
# make && make install
  • 如果执行完上述流程之后,同样的警告仍然存在,则安装更高版本的openssl
    ① 下载并安装新版本的openssl
    # wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
    # tar -zxvf openssl-1.1.1o.tar.gz
    # cd openssl-1.1.1o
    
    ② 编译安装
    # ./config --prefix=/usr/local/openssl
    # make && make install
    
    ③ 备份原版本openssl,以防万一
    # mkdir -p ~/backup/openssl_bak/bin
    # mkdir ~/backup/openssl_bak/include
    # mv /usr/bin/openssl ~/backup/openssl_bak/bin
    # mv /usr/include/openssl ~/backup/openssl_bak/include
    
    ④软链接新版本openssl
    # ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    # ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    # ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
    
    ⑤修改ld.so.conf文件且使之生效
    # echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    # ldconfig -v
    # openssl version
    
    ⑥重新执行Python编译的步骤,参考1.4
2.1.2 旧脚本包装器调用pip的警告
  • 之所以警告旧脚本包装器调用pip,是因为在1.5步骤中只创建了指向Python3.8新版本的软链接,没有创建新版本pip3的软链接,而使用原Python3.6版本的pip3就会报上述的警告。
  • 备份/usr/bin下原版本的pip3,重新创建当前版本的pip3软链接后,不再有警告。
  • 值得一提的是,CentOS自带的python2.7版本没有安装对应版本的pip。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值