在Centos 7下编译安装Python3 - kernel panic

在Centos 7下编译安装Python3

作为一个Python爱好者,喜欢使用比较新版本的Py,用yum或者其它包管理器安装的py太旧了,大概是3.6版本,新版本官网上没有编译好的。现在把编译步骤记录下来方便以后使用。
像我这种懒狗不喜欢整理,重复的事情都要去查一遍资料,每次装环境都是开好几个百度,期间踩坑也很多次,趁着现在有点时间记一下整个过程。

首先安装GCC 9
这是因为用yum安装的GCC是个古董,好像是4.8.5版本,在开了优化以后的编译会出现错误据说是个BUG。所以得用高版本GCC。 有次无聊去看编译器的更新日志,发现从4.8.5到9也好几年了,该用新的了。

yum install centos-release-scl devtoolset-9-gcc* automake autoconf
libtool make -y scl enable devtoolset-9 bash

安装zlib和SSL
其中zlib在安装的时候用来解包,SSL如果不装则Python可用,PiP不可用(因为下载包要HTTPS,也想过有没有什么办法不要HTTPS,不过加密是趋势,防中间人攻击)。
Zlib直接用yum 装

yum install zlib-devel -y

openssl 用编译安装
并不是我不想整yum编译好的,而是试过了几乎都报错,那只能手动编译了

wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz
tar -zxvf OpenSSL_1_1_1d.tar.gz
cd  openssl-OpenSSL_1_1_1d
./config --prefix=/usr/local/openssl

make -j4&& make install
软链接一下到环境变量
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v # 建立动态链接

下载一个最新版本的Python
wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz
解压进目录 然后configure

./configure –prefix=/usr/local/python3 –with-openssl=/usr/local/openssl –enable-optimizations
编译参数开优化 据说有运行效率提升
make -j4 #编译 -j4允许并行4个作业 大大缩短编译时间
别忘了
make install
最后创建软链接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

最新版python3.9 安装好了 pip3也正常

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。