翔奕时代

A year's plan starts with spring.

和你们这些少爷不同,我们光是活着就竭尽全力了。
0%

Centos7如何安装python3.10+

在centos7里面安装python3.10+高版本的时候,会报错Centos7如何安装python3.10+,ImportError: Can’t connect to HTTPS URL because the SSL module is not available.
原因是centos7里面的openssl是1.0.1版本的,这对于python3以上的版本不再支持,需要我们对系统中的openssl进行升级后才进行安装

一、OpenSSL版本要求

Python 3.10需要‌OpenSSL 1.1.1或更高版本‌支持。CentOS 7默认安装的OpenSSL 1.0.2k不兼容,需手动升级‌

二、升级OpenSSL详细步骤

1. 安装编译依赖

1
sudo yum install -y gcc make perl zlib-devel pcre-devel

2. 下载并解压OpenSSL源码

1
2
3
cd /usr/src
sudo wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz # 以最新版为例
sudo tar xzf openssl-*.tar.gz && cd openssl-*

3. 编译安装OpenSSL

1
2
sudo ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
sudo make && sudo make install

4. 配置系统环境

1
2
3
4
5
6
7
# 备份旧版
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
# 创建软链接
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 更新库路径
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig

5. 验证安装

1
openssl version  # 应显示OpenSSL 1.1.1w或更高版本

说明‌:若仍显示旧版,检查PATH环境变量是否包含/usr/local/openssl/bin

三、安装Python 3.10步骤

1. 安装编译依赖

1
2
sudo yum groupinstall "Development Tools"
sudo yum install -y zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel

2. 下载Python源码

1
2
3
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
sudo tar xzf Python-3.10.13.tgz && cd Python-3.10.13

3. 配置并编译Python

1
2
3
# 指定OpenSSL路径
./configure --enable-optimizations --with-openssl=/usr/local/openssl
sudo make && sudo make install

4. 验证安装

1
2
python3.10 --version  # 应显示Python 3.10.13
python3.10 -m ssl # 检查SSL模块是否可用

四、注意事项

  • 1、‌路径隔离‌:建议将Python 3.10安装到/usr/local目录,避免覆盖系统默认的Python 2.7
  • 2、‌依赖冲突‌:若编译Python时提示ssl模块缺失,需确认–with-openssl参数指向正确的OpenSSL路径‌
  • 3、环境变量‌:可通过alternatives工具或手动创建/usr/bin/python3软链接管理多版本Python
  • 4、pip3:在使用的时候需要配置源,才可能更顺利的拉取包