- 安装必备依赖
sudo apt update
sudo apt install -y \
build-essential \
zlib1g-dev \
libncurses5-dev \
libgdbm-dev \
libnss3-dev \
libssl-dev \
libreadline-dev \
libffi-dev \
wget \
openssl \
libffi-devel
# 安装 EPEL 仓库(推荐)
sudo yum install epel-release
# 安装常用 Python 开发依赖
sudo yum install python3 python3-pip python3-devel
# 安装编译 Python 时需要的系统依赖
sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel
- 下载 Python 3.7.6 源码
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
tar -xzf Python-3.7.6.tgz
cd Python-3.7.6
- 配置时显式指定 OpenSSL(关键步骤)
# 找到系统openssl的安装路径
openssl_dir=$(dirname $(dirname $(which openssl)))
# 配置时加入ssl参数
./configure \
--enable-optimizations \
--with-openssl=$openssl_dir \
--enable-shared
这一步ssl配置不成功可以手动设置参数位置
# 如果系统有多个openssl版本,手动指定1.1.1版本路径
./configure \
--with-openssl=/usr/include/openssl \
--enable-optimizations
./configure \
--with-openssl=/usr \
--with-ssl-default-suites=openssl \
--enable-loadable-sqlite-extensions
- 编译安装
make -j$(nproc)
sudo make altinstall
加入环境变量
ln -s /usr/local/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3.7
验证安装
python3.7 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# 应该显示 OpenSSL 版本号
centos安装
环境依赖
yum -y update
yum install wget -y
yum install gcc gcc-c++ -y
yum install zlib-devel -y
下载Python
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz
安装Python
tar -zxvf Python-3.7.6.tgz
cd Python-3.7.6
./configure
./configure --enable-optimizations
make && make install
验证是否成功安装
加入环境变量
ln -s /usr/local/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3.7
[root@localhost Python-3.7.6]# python3.7 -V
Python 3.7.6