Python 2.5.2中的OpenSSL无法正常工作

时间:2011-12-21 05:18:55

标签: python linux ssl openssl

我正在尝试使用

将SSL 2.5.2作为单独的二进制文件构建
  

./配置
  使
  使altinstall(使用和不使用-lssl选项)

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

  

$ dpkg --get-selections | grep ssl
  libio插槽-SSL-perl的
  的libnet-SSLeay的-perl的
  中的libssl-dev的
  的libssl-doc的
  libssl1.0.0
  libssl1.0.0:I386
  OpenSSL的
  蟒蛇,OpenSSL的
  SSL证书

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

  

_socket socketmodule.c
  SSL =的/ usr /本地/ 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
  追溯(最近的呼叫最后):
   文件“<stdin&gt;”,第1行,在<module&gt;中   ImportError:没有名为ssl
的模块

我基本上没有尝试的东西 - 会感谢任何帮助或指示什么检查或要做的事情,以使其工作。我知道Python 2.7已经有SSL,但出于其他兼容性原因,我必须使用2.5。我正在使用Ubuntu 11.10(Oneiric)。谢谢!

1 个答案:

答案 0 :(得分:0)

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