CentOS7安装Python3新版本

CentOS7安装Python3新版本,第1张

前言
  • 问题来源于业务需求,需要在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安装包
  • 从官网https://www.python.org/downloads/下载对应 *** 作系统、对应版本的Python安装包
  • 本文从https://www.python.org/downloads/source/中下载Python3.8.6 Linux安装包
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. 遇到的问题

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/939436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存