【问题标题】:Python-LDAP Size limit exceeded超出 Python-LDAP 大小限制
【发布时间】:2014-01-02 19:15:51
【问题描述】:

我看到有一种方法可以让我在 python 中对结果进行分页,我找到了以下示例代码: https://bitbucket.org/jaraco/python-ldap/src/f208b6338a28/Demo/paged_search_ext_s.py

当我复制此代码并尝试将其修改为运行代码时需要它执行的操作时,我收到“TypeError: init() got an unexpected keyword argument 'cookie'”

我什至将代码恢复为默认值并得到相同的错误。如果有人能指出我正确的方向,将不胜感激。

谢谢

【问题讨论】:

    标签: python openldap python-ldap


    【解决方案1】:

    更新您的python-ldap 模块:

    pip install python-ldap --upgrade
    

    该类从 commitmentioned 改变:

    ldap.controls 中的新类 API,不向后兼容!

    【讨论】:

    • 对于我的发行版,我是最新的,但必须使用 pip / 他们网站上的下载进行更新。谢谢!
    【解决方案2】:

    问题出在这一行:

    req_ctrl = SimplePagedResultsControl(True,size=self.page_size,cookie='')
    

    找到定义 SimplePagedResultsControl 类的位置并检查其构造函数的参数列表以获得正确的构造函数参数列表。

    编辑:

    看起来构造函数签名已更改。如果由于某种原因无法升级,请按照 Omid Raha 的建议升级或尝试下面的旧方法签名。

    paged_results_control = SimplePagedResultsControl(ldap.LDAP_CONTROL_PAGE_OID, True, (self.page_size, ''))
    

    【讨论】:

    • python-ldaps 文档中的参数列表如下:class ldap.controls.libldap.SimplePagedResultsControl(criticality=False, size=None, cookie=None)
    • 看起来您的 LDAP 模块与 Omid Raha 所说的文档相比已经过时了。如果您由于某种原因无法更新 LDAP 模块,我已经找到了较旧的构造函数签名。我已将其添加到我的答案中。
    • 旧的构造函数也不适合我,我必须更新模块,因为它在测试服务器上工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多