在Amazon Linux 2编译Python 3.10后缺少HTTPS支持该如何解决?
问题原因
- 版本不兼容:Amazon Linux 2 默认预装的 OpenSSL 版本为 1.0.2,低于 Python 3.10 要求的最低 OpenSSL 1.1.1 版本,默认的
openssl-devel包无法满足编译要求 - 编译参数缺失:原编译命令没有显式指定 OpenSSL 路径,编译阶段会跳过 ssl 模块的构建,最终导致 Python 不支持 HTTPS 协议
解决方案
1. 安装符合版本要求的 OpenSSL 开发包
Amazon Linux 2 官方源提供了符合要求的 openssl11 系列包,直接执行以下命令安装:
sudo yum install -y openssl11 openssl11-devel
2. 清理之前的编译残留
进入之前解压的 Python 3.10 源码目录,清理上一次编译生成的中间文件:
cd Python-3.10.0 sudo make clean
3. 重新执行配置,指定 OpenSSL 路径
执行带 OpenSSL 参数的 configure 命令,显式关联依赖:
sudo ./configure --enable-optimizations --with-openssl=/usr/include/openssl11 --with-openssl-rpath=auto
- 配置完成后可以留意输出日志,如果出现
checking for SSL support... yes说明 OpenSSL 依赖检测通过
4. 重新编译安装
sudo make altinstall
5. 验证 HTTPS 支持
安装完成后执行以下命令验证 ssl 模块是否正常加载:
python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"
如果正常输出 OpenSSL 版本信息,说明配置生效,HTTPS 功能可正常使用。
内容的提问来源于stack exchange,提问作者Diego Oliveira
相关产品推荐
相关产品推荐

