【问题标题】:OpenSSL in Python 2.5.2 not workingPython 2.5.2 中的 OpenSSL 不起作用
【发布时间】:2011-12-21 05:18:54
【问题描述】:

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

./配置
制作
make altinstall(带和不带 -lssl 选项)

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

$ dpkg --get-selections | grep ssl
libio-socket-ssl-perl
libnet-ssleay-perl
libssl-开发
libssl 文档
libssl1.0.0
libssl1.0.0:i386
openssl
python-openssl
SSL证书

我下载了 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

但是在上面做了configure、make等之后,当我用python2.5进行测试时,会发生这种情况:

>>> 导入 ssl
回溯(最近一次通话最后一次):
文件“<stdin>”,第 1 行,<module>
ImportError: 没有名为 ssl 的模块

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

【问题讨论】:

    标签: python linux ssl openssl


    【解决方案1】:

    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。)

    【讨论】:

    • 感谢您的回答 - 但是我尝试在 python2.5 中导入 OpenSSL,它还说找不到模块。
    • 如果您使用的是 Ubuntu 11.10,python-openssl 不包含 Python 2.5 的文件。您也必须自己安装。
    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多