在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:在使用的时候需要配置源,才可能更顺利的拉取包