Centos7 官方库可以安装 Python 3.6.8
如果要安装 3.9.18,需要自行编译
过程中还是有点小坑的,记录一下
- 以下命令都是在 root 用户下操作
- 安装命令没有加
-y参数,都需要手动确认,这样更明白自己在干啥
- 安装 Extra Packages for Enterprise Linux (EPEL) 软件包
yum install epel-release
- 安装编译需要的包
yum install gcc make
- 安装功能依赖包
yum install zlib-devel libffi-devel openssl11-devel bzip2-devel sqlite-devel ncurses-devel tk-devel
这些包的作用可以问下大语言模型 AI,会得到很好的回答
Python3.9.18 编译需要 openssl1.1 版本,但是 Centos7 安装的是 openssl1.0 版本。网上很多教程编译 openssl 相关的都会失败,导致后续开发使用相关功能时会失败。
- 下载 Python 3.9.18 源代码:
wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
使用 wget 命令下载 Python 3.9.18 的源代码压缩包。
yum install wget来获取
- 解压源代码压缩包:
tar -xzvf Python-3.9.18.tgz
使用 tar 命令解压源代码压缩包。
- 进入解压后的目录:
cd Python-3.9.18
- 声明全局变量:
export CPPFLAGS="$(pkg-config --cflags openssl11)"
export LDFLAGS="$(pkg-config --libs openssl11)"
这样在配置编译时,就会使用 openssl11,而不是默认的 openssl
- 配置编译
./configure
一些文章会带上
--enable-optimizations,这需要gcc 8版本以上的支持,centos7 咱们就不折腾升级gcc了,可能会引发其他兼容问题
- 开始编译并安装:
make altinstall
使用
altinstall不会影响系统原有的 python,从而不影响其他软件,保证系统正常运行
- 验证:
python3.9 -V
ok,主要点就是 openssl11 和 altinstall
关键就是 Centos7 系统比较老了,使用 Centos8 或以上的就不会有这些麻烦了
下回见~