0

小伙子,这是不是很郁闷...

我通过从我的 CentOS 开发 VM 上的站点httplib2下载 .tar.gz 包来安装它。在花了 1/2 天让它进行双向 ssl 身份验证后,我在目标 RHEL 5.7 机器上安装了它。由于类构造函数不同,突然代码无法运行!python26-httplib2.noarch

官方文档对类的定义如下Http

类 httplib2.Http([cache=None][, timeout=None][, proxy_info=None][, ca_certs=None][, disable_ssl_certificate_validation=False])

我使用 tar 安装的代码确实可以做到这一点,并且可以正常工作:

client = httplib2.Http(ca_certs='/path-to/ca.cert')

但是,ca_cert在 RPM 安装中无法识别该参数。查看库,我确实看到以下内容:

class Http(object):

    def __init__(self, cache=None, timeout=None, proxy_info=None):

即完全不同的参数列表。

对此有什么解释吗?

PS。对不起,如果我听起来很生气 - 我是。现在是晚上 8 点,我希望今天检查代码...
PPS。蟒蛇2.6

4

1 回答 1

1

我猜:不同的 httplib2 版本。据我快速浏览更改日志和代码了解,ca_certs支持 SSL 服务器证书验证,已在 httplib2 0.7.0 中添加。来自 RPM 的 httplib2 版本是否可能比这更旧?显示什么print httplib2.__version__

作为一种解决方法,我建议不要从 tar.gz 文件或 Red Hat 包中安装 Python 库;使用pip代替,可能带有一个需求文件,您可以在其中指定您的程序运行所需的每个外部库的确切版本号(甚至是下限)。

于 2012-02-05T18:41:59.023 回答