首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用msn协议运行twisted.words示例时出现问题

使用msn协议运行twisted.words示例时出现问题
EN

Stack Overflow用户
提问于 2009-04-25 13:16:30
回答 2查看 944关注 0票数 5

我目前正在尝试使用Twisted库,特别是twisted words来尝试与MSN进行交互。但是,当我运行twisted提供的示例脚本时,我得到了一个错误。具体来说,这个错误可以在http://i42.tinypic.com/wl945w.jpg中找到。脚本可以在这里找到http://twistedmatrix.com/projects/words/documentation/examples/msn_example.py

平台是带有Python 2.6的Vista

编辑:完整输出:

代码语言:javascript
复制
Email (passport): mypassport@hotmail.com
Password: ******
2009-04-25 10:52:49-0300 [-] Log opened.
2009-04-25 10:52:49-0300 [-] Starting factory <twisted.internet.protocol.ClientFactory instance at 0x9d87e8c>
2009-04-25 10:52:55-0300 [Dispatch,client] Starting factory <twisted.words.protocols.msn.NotificationFactory instance at 0x9e28bcc>
2009-04-25 10:52:55-0300 [Dispatch,client] Stopping factory <twisted.internet.protocol.ClientFactory instance at 0x9d87e8c>
2009-04-25 10:52:55-0300 [Notification,client] Unhandled Error
    Traceback (most recent call last):
      File "/usr/local/lib/python2.5/site-packages/twisted/python/log.py", line 84, in callWithLogger
        return callWithContext({"system": lp}, func, *args, **kw)
      File "/usr/local/lib/python2.5/site-packages/twisted/python/log.py", line 69, in callWithContext
        return context.call({ILogContext: newCtx}, func, *args, **kw)
      File "/usr/local/lib/python2.5/site-packages/twisted/python/context.py", line 59, in callWithContext
        return self.currentContext().callWithContext(ctx, func, *args, **kw)
      File "/usr/local/lib/python2.5/site-packages/twisted/python/context.py", line 37, in callWithContext
        return func(*args,**kw)
    --- <exception caught here> ---
      File "/usr/local/lib/python2.5/site-packages/twisted/internet/selectreactor.py", line 146, in _doReadOrWrite
        why = getattr(selectable, method)()
      File "/usr/local/lib/python2.5/site-packages/twisted/internet/tcp.py", line 460, in doRead
        return self.protocol.dataReceived(data)
      File "/usr/local/lib/python2.5/site-packages/twisted/protocols/basic.py", line 238, in dataReceived
        why = self.lineReceived(line)
      File "/usr/local/lib/python2.5/site-packages/twisted/words/protocols/msn.py", line 651, in lineReceived
        handler(params.split())
      File "/usr/local/lib/python2.5/site-packages/twisted/words/protocols/msn.py", line 827, in handle_USR
        d = _login(f.userHandle, f.password, f.passportServer, authData=params[3])
      File "/usr/local/lib/python2.5/site-packages/twisted/words/protocols/msn.py", line 182, in _login
        reactor.connectSSL(_parsePrimitiveHost(nexusServer)[0], 443, fac, ClientContextFactory())
    exceptions.TypeError: 'NoneType' object is not callable

2009-04-25 10:52:55-0300 [Notification,client] Stopping factory <twisted.words.protocols.msn.NotificationFactory instance at 0x9e28bcc>
EN

回答 2

Stack Overflow用户

发布于 2009-04-25 13:59:36

由于MSN涉及SSL连接,因此您必须安装pyOpenSSL才能使用它。看起来你可能并不需要。然而,对于Twisted来说,这并不是一个很好的方式来报告这个缺失的依赖项。我建议在Twisted问题跟踪器中提交一个工单,以改进此报告。

票数 3
EN

Stack Overflow用户

发布于 2009-04-25 13:57:27

怎么了

看看这个:

代码语言:javascript
复制
>>> a = str
>>> a() # it's ok, a string is a callable class
''
>>> a = None
>>> a() # it fails, None a special Singleton not meant to be called

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a()
TypeError: 'NoneType' object is not callable

你能做什么

显然,最后一行(refactor.connectSSL...)包含三个对象调用,其中一个对象为None。

如果你对调试器不感兴趣,你可以做的第一件事就是,取一行中的每个元素,并在它之前添加:

代码语言:javascript
复制
assert object1 is None 
assert object2 is None

您可能需要检查文档,看看在哪种情况下,某些初始化它的方法会返回None。

愿原力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/788902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档