下载 Python3.12 源代码

Python 提供了一个 FTP 地址,在这个 FTP 你可以下载的各个版本的 Python 源代码:

我下载的是 Python3.12 版本的:Python-3.12.4.tgz

  1. [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
  2. [root@liqiang.io]# cd /tmp && tar zxf Python-3.12.4.tgz
  3. [root@liqiang.io]# cd Python-3.12.4

编译前准备

因为编译 Python 源代码需要依赖于很多工具,所以得先准备一下:

  1. [root@liqiang.io]# apt update -y
  2. [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 版本

  1. [root@liqiang.io]# cd /home/liuliqiang/soft/openssl
  2. [root@liqiang.io]# wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
  3. [root@liqiang.io]# tar zxf openssl-3.3.1.tar.gz && cd openssl-3.3.1
  4. [root@liqiang.io]# ./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
  5. [root@liqiang.io]# make -j128
  6. [root@liqiang.io]# make install

编译安装 Python3.12

因为在旧版本的 gcc 中使用 --enable-optimizations 可能会有问题,所以这里去除了 --enable-optimizations,你可以自行按照我的教程升级 GCC ,然后替换成:./configure prefix=/usr/local/python3 --enable-optimizations

  1. [root@liqiang.io]# ./configure --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
  2. [root@liqiang.io]# make -j128
  3. [root@liqiang.io]# make install
  4. [root@liqiang.io]# export PATH=$PATH:/usr/local/python3/bin/

测试安装效果

要想测试是否正确安装,并且可以正确使用 Python3.12 和 pip3,我这里采用 Virtualenv 的方式进行验证:

  1. [root@liqiang.io] curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
  2. [root@liqiang.io] python3.12 get-pip.py
  3. [root@liqiang.io] python3.12 -m pip install virtualenv
  4. [root@liqiang.io] python3.12 -m virtualenv venv
  5. [root@liqiang.io] source venv/bin/activate
  6. (venv) [root@liqiang.io] python --version
  7. Python 3.12.4

OK,到此就表示一切都安装正常了,可以和其他环境一样使用 Python3 了。

Ref