1

ldaptor 项目在交互式 Python 提示符下有一些基于 Twisted 的示例代码。但是,在某一点 [1],如果您实际上尝试按照提示进行操作,则该示例会中断,因为不推荐使用函数-- twisted.trial.util.deferredResult()。有趣的是,这显然让反应器运行,建立连接,并返回可以在交互式 Python 解释器中操作的延迟结果(LDAPClient 协议实例)。

我的问题是,是否有任何现代方法可以为了示例或只是实验而做这种事情?我可以在提示符下做这样的事情:

>>> from ldaptor.protocols.ldap.ldapclient import LDAPClient
>>> from twisted.internet import reactor
>>> from twisted.internet.endpoints import clientFromString, connectProtocol
>>> e = clientFromString(reactor, "tcp:host=localhost:port=10389")
>>> e
<twisted.internet.endpoints.TCP4ClientEndpoint at 0xb452e0c>
>>> d = connectProtocol(e, LDAPClient)
>>> d
<Deferred at 0xb34656c>

但是我想不出任何方法来运行rector并将延迟结果返回到交互式提示。可能吗?钩针项目有帮助吗?

[1] https://ldaptor.readthedocs.org/en/latest/addressbook-example.html#searching

4

1 回答 1

1

你可以试试:

  • python -m twisted.conch.stdio
  • pip install bpython urwid; bpython-urwid --reactor select

每一个都将为您提供增强的 Python 提示,并在后台运行 Twisted reactor。前者原生支持Deferreds,但后者功能更丰富。

于 2015-07-06T20:17:52.957 回答