Python 2.7 导入错误:没有名为 _ssl 的模块

3 投票
1 回答
5061 浏览
提问于 2025-04-17 17:27

我正在尝试在Redhat上构建Python 2.7,并且希望能支持SSL。我在Modules/Setup.dist文件中取消了注释:

SSL=/urs/local/ssl
_ssl _ssl.c
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl
-L$(SSL)/lib -lssl -lcrypto

我还确保系统上安装了OpenSSL和openssl-devel。

在安装openssl-devel之前,运行make时会提示无法构建模块_ssl,但这个错误现在消失了。make成功构建了_ssl.o,日志中没有报告错误,但没有构建出lib-dynload/_ssl.so这个文件——显然这是我需要的文件,以便让SSL正常工作。我在运行./configure时加上了--enable-shared这个选项,但到目前为止,无论我如何调整构建环境,都无法加载这个库文件。

1 个回答

0

成功地构建了 _ssl.o 文件,日志中没有报告错误,但没有构建 lib-dynload/_ssl.so 文件——这显然是我需要的文件,以便让 ssl 正常工作。

我对构建 Python 的细节不是很了解,但在 Red Hat 系统上,你可能需要用以下命令来构建 OpenSSL:

$ export CFLAGS="-fPIC"
$ ./config shared -no-ssl2 -no-ssl3 --openssldir=/usr/local/ssl ...
...
$ make depend
...
$ make all
...
$ sudo -E make install

在你执行完安装后,确保共享库文件在 /usr/local/ssl/lib 目录下。我在 Fedora 系统上遇到过“缺少共享对象”的问题,以上方法解决了我的问题。

撰写回答