centos7安装Python3.10提示no ssl错误解决

在centos7系统默认安装的Python是2.7, 现在要升级到3.10.x。

问题

本着方便版本管理的原因,使用pyenv的方式来安装python3.10.16版本。

然后遇到了所有程序员安装Python3.10必然会遇到的噩梦:

1
2
3
4
5
6
7
8
9
10
11
12
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/root/.pyenv/versions/3.10.16/lib/python3.10/ssl.py", line 99, in <module>
import _ssl # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (CentOS Linux 7 using python-build 20180424)

也就是说,没有找到系统的ssl配置?

可是我的系统上安装了openssl呀!

1
2
3
$ openssl version

OpenSSL 3.0.0 7 sep 2021 (Library: OpenSSL 3.0.0 7 sep 2021)

经过搜索,确认Python3.10的安装依赖openssl 1.11版本,我的版本太高了。

解决

执行如下命令解决:

1
2
3
4
# 安装openssl 1.11
yum install -y openssl-devel openssl11-devel openssl11-lib xz-devel
# 安装Python
CPPFLAGS="-I/usr/include/openssl11" LDFLAGS="-L/usr/lib64/openssl11 -lssl -lcrypto " pyenv install -v 3.10.16

参考:

pyenv 官方常见问题解决参考


centos7安装Python3.10提示no ssl错误解决
https://www.hancher.top/2025/03/11/linux-centos7-install-py3-10-no-ssl-err/
作者
寒澈
发布于
2025年3月11日
许可协议