之前记录了centos6上编译安装python3.7的笔记,目前服务器系统使用的centos7,而且需要使用高版本的python,所以更新下笔记。
centos7编译安装python3时需要OpenSSL 1.1.1+以上版本,否则就会报错,而centos7自带OpenSSL 1.0.2k版本,满足不了编译安装python3.9的要求,所以我们需要先编译安装的1.1.1+以上版本openssl,这里我们选择了openssl-1.1.1w这个版本,下面来看看编译安装过程
首先需要安装依赖包
yum install -y zlib zlib-devel
现在openssl源码包,可以去这个网站查看最新版本https://www.openssl.org/source/
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz tar -zxvf openssl-1.1.1w.tar.gz
创建/usr/local/openssl目录,后面编译安装时指定编译安装到这个目录
mkdir -p /usr/local/openssl cd openssl-1.1.1w ./config --prefix=/usr/local/openssl shared zlib make make install
编译安装完成以后我们还需要替换一些文件
mv /usr/bin/openssl /usr/bin/openssl.bak ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/include/openssl /usr/include/openssl echo "/usr/local/lib64" >>/etc/ld.so.conf ldconfig -v openssl version -a
返回了OpenSSL 1.1.1w说明openssl这部就编译完成了,我们接着编译安装python3.9
首先下载python3.9源码包
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
创建/usr/local/python3目录,后面python3.9就编译到这个目录
mkdir -p /usr/local/python3 ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-optimizations
如果有"Could not import runpy module"的报错,说明gcc版本太低,升级gcc版本可以查看这个笔记中的gcc升级过程:https://sulao.cn/post/950.html,或者去掉--enable-optimizations这个参数也可以顺利编译完成。
make && make install
编译完成以后我们需要把解释器软链到/usr/bin目录下
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
然后我们可以使用python3命令和pip3命令进行python运行和管理了。