CentOS 7 全流程编译安装 Python 3
注意:本文全程均以用户拥有root权限为前提,如果不能使用root账户登录,请在命令前加上sudo
。
安装依赖包
- 首先安装EPEL,这是大部分依赖项的基础
1
| yum install -y epel-release
|
- 安装依赖项
1
| yum install -y wget make cmake gcc bzip2-devel libffi-devel zlib-devel
|
和其他依赖包,这里统一用Development Tools安装1
| yum groupinstall -y "Development Tools"
|
编译安装 Python
OpenSSL
Python 3.11及以上版本需要openssl 1.1.1及以上版本,而(对于CentOS 7来说)无论是EPEL源还是官方源都没法安装这个版本,因此需要从源码编译安装。
- 首先下载OpenSSL源码:
1
| wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz
|
- 解压:
1 2
| tar -zxvf openssl-1.1.1u.tar.gz cd openssl-1.1.1u/
|
- 配置,这个过程应该很快
1
| ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
|
- 编译:
-j
后面的参数是线程数,可以取电脑的核心数。 - 更新路径配置:
1 2 3 4
| tee /etc/profile.d/openssl.sh<<EOF export PATH=/usr/local/openssl/bin:\$PATH export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH EOF
|
使路径生效:1
| source /etc/profile.d/openssl.sh
|
- 看一下版本返回:
1
| OpenSSL 1.1.1t 7 Feb 2023
|
Python
- 下载Python源码:Index of /ftp/python/,找想编译的版本点进去,这里以3.11.4版本为例
1
| wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
|
- 解压
1 2
| tar -zxvf Python-3.11.4.tgz cd Python-3.11.4/
|
- 配置环境变量并配置编译
1
| LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/local/openssl/lib" ./configure --with-openssl=/usr/local/openssl
|
- 编译并安装
1 2
| make -j8 make altinstall
|
-j
后面的参数是线程数,可以取电脑的核心数。 - 测试一下Python是否能够使用
1 2 3 4
| [root@localhost ~] Python 3.11.4 [root@localhost ~] pip 23.2.1 from /usr/local/lib/python3.11/site-packages/pip (python 3.11)
|
换源(可选)
这一部分取自PyPI 镜像使用帮助。
- 首先更新pip:
1
| python3.11 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
|
- 设置清华源:
1
| pip3.11 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|