下载 Python3.12 源代码
Python 提供了一个 FTP 地址,在这个 FTP 你可以下载的各个版本的 Python 源代码:
我下载的是 Python3.12 版本的:Python-3.12.4.tgz
[root@liqiang.io]# wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz -O /tmp/Python-3.12.4.tgz
[root@liqiang.io]# cd /tmp && tar zxf Python-3.12.4.tgz
[root@liqiang.io]# cd Python-3.12.4
编译前准备
因为编译 Python 源代码需要依赖于很多工具,所以得先准备一下:
[root@liqiang.io]# apt update -y
[root@liqiang.io]# apt install -y build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
安装 OpenSSL
Python 3.12 要求至少 OpenSSL 1.1.1 版本
[root@liqiang.io]# cd /home/liuliqiang/soft/openssl
[root@liqiang.io]# wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
[root@liqiang.io]# tar zxf openssl-3.3.1.tar.gz && cd openssl-3.3.1
[root@liqiang.io]# ./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
[root@liqiang.io]# make -j128
[root@liqiang.io]# make install
编译安装 Python3.12
因为在旧版本的 gcc 中使用 --enable-optimizations
可能会有问题,所以这里去除了 --enable-optimizations
,你可以自行按照我的教程升级 GCC ,然后替换成:./configure prefix=/usr/local/python3 --enable-optimizations
[root@liqiang.io]# ./configure --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
[root@liqiang.io]# make -j128
[root@liqiang.io]# make install
[root@liqiang.io]# export PATH=$PATH:/usr/local/python3/bin/
测试安装效果
要想测试是否正确安装,并且可以正确使用 Python3.12 和 pip3,我这里采用 Virtualenv 的方式进行验证:
[root@liqiang.io] curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[root@liqiang.io] python3.12 get-pip.py
[root@liqiang.io] python3.12 -m pip install virtualenv
[root@liqiang.io] python3.12 -m virtualenv venv
[root@liqiang.io] source venv/bin/activate
(venv) [root@liqiang.io] python --version
Python 3.12.4
OK,到此就表示一切都安装正常了,可以和其他环境一样使用 Python3 了。