python - Python 2.5.2 中的 OpenSSL 不工作

标签 python linux ssl openssl

我正在尝试使用 SSL 作为单独的二进制文件构建 Python 2.5.2

./configure
make
make altinstall (with and without the -lssl option)

我确实首先检查了我的 openSSL 常规包和开发包:

$ dpkg --get-selections | grep ssl
libio-socket-ssl-perl
libnet-ssleay-perl
libssl-dev
libssl-doc
libssl1.0.0
libssl1.0.0:i386
openssl
python-openssl
ssl-cert

我下载了 Python 2.5.2 并在 Modules/Setup.dist 中编辑了以下行:

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

有很多关于这个问题的博文,这里有两篇我见过(我不能发表超过 2 篇)——描述我尝试过的过程: http://agiletesting.blogspot.com/2008/05/compiling-python-25-with-ssl-support.html
http://paltman.com/2007/11/15/getting-ssl-support-in-python-251

但是在按照上面的配置,make 等操作之后,当我使用 python2.5 对其进行测试时,会发生这种情况:

>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named ssl

我基本上没有什么可以尝试的了——如果能提供任何帮助或指导,我将不胜感激。我知道 Python 2.7 已经有 SSL,但出于其他兼容性原因,我必须使用 2.5。我正在使用 Ubuntu 11.10 (Oneiric)。谢谢!

最佳答案

httplib.HTTPSConnection(和其他)和 ssl 模块中的 SSL 支持是两个不同的东西。

您可能已经为支持 SSL 的库启用了 SSL。但是,Python 2.5 没有 ssl 模块。相反,您可能想要使用提供类似功能的 OpenSSL 模块。

如果您想要依赖于sslOpenSSL 模块的代码,您可能需要稍微拆分一下代码。例如:

try:
    import ssl
    USE_OPENSSL = False
except ImportError:
    import OpenSSL
    USE_OPENSSL = True

然后,您可能必须根据加载的模块来区分代码的作用。 (如果你只需要 Python 2.5,直接使用 import OpenSSL。)

关于python - Python 2.5.2 中的 OpenSSL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585375/

相关文章:

linux - 如何使用 ffplay 和 youtube-dl 在终端中播放 youtube 歌曲

javascript - Angular 和 Spring Rest api 通过 https 进行通信

python - 一个词的所有可能组合 - Python

python - 将带有值列表的字典转换为数据框

python - xlsxwriter 和 LibreOffice 不显示公式的结果

c# - 在 mono/Linux 下从命名管道读/写

python - 使用 OpenCV 图像的 Flask 视频流

linux - 自动化 SCP 将文件从多个目录(括号内)复制到适当的目录

linux - Apache 客户端身份验证 : Certificate Verification: Error (2): unable to get issuer certificate (SOLVE)

perl - 为什么我不能使用 Perl 的 AuthCAS 连接到我的 CAS 服务器?