Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用MSN协议运行twisted.words示例时出现异常_Python_Twisted - Fatal编程技术网

Python 使用MSN协议运行twisted.words示例时出现异常

Python 使用MSN协议运行twisted.words示例时出现异常,python,twisted,Python,Twisted,我正在运行twisted.words MSN协议示例,该示例来自twisted文档,位于此处: 但是,当我运行此示例脚本时,会出现未处理的错误异常: 2012-05-12 15:39:51-0300 [-] Log opened. 2012-05-12 15:39:51-0300 [-] Starting factory <twisted.internet.protocol.ClientFactory instance at 0x8c6c18c> 2012-05-12 15:39:

我正在运行twisted.words MSN协议示例,该示例来自twisted文档,位于此处:

但是,当我运行此示例脚本时,会出现未处理的错误异常:

2012-05-12 15:39:51-0300 [-] Log opened.
2012-05-12 15:39:51-0300 [-] Starting factory <twisted.internet.protocol.ClientFactory instance at  0x8c6c18c>
2012-05-12 15:39:52-0300 [Dispatch,client] Starting factory <twisted.words.protocols.msn.NotificationFactory instance at 0x8c6c2cc>
2012-05-12 15:39:52-0300 [Dispatch,client] Stopping factory <twisted.internet.protocol.ClientFactory instance at 0x8c6c18c>
2012-05-12 15:39:53-0300 [Notification,client] Starting factory <twisted.internet.protocol.ClientFactory instance at 0x8c710ec>
2012-05-12 15:39:53-0300 [Notification,client] Unhandled Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 69, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
    return func(*args,**kw)
--- <exception caught here> ---
  File "/usr/lib/python2.7/dist-packages/twisted/internet/selectreactor.py", line 146, in _doReadOrWrite
    why = getattr(selectable, method)()
  File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 460, in doRead
    rval = self.protocol.dataReceived(data)
  File "/usr/lib/python2.7/dist-packages/twisted/protocols/basic.py", line 564, in dataReceived
    why = self.lineReceived(line)
  File "/usr/lib/python2.7/dist-packages/twisted/words/protocols/msn.py", line 670, in lineReceived
    handler(params.split())
  File "/usr/lib/python2.7/dist-packages/twisted/words/protocols/msn.py", line 848, in handle_USR
    authData=params[3])
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 108, in execute
    return succeed(result)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 71, in succeed
    d.callback(result)
  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 360, in callback
    assert not isinstance(result, Deferred)
exceptions.AssertionError: 

2012-05-12 15:39:53-0300 [Notification,client] Stopping factory <twisted.words.protocols.msn.NotificationFactory instance at 0x8c6c2cc>
2012-05-12 15:39:55-0300 [PassportNexus,client] Starting factory <twisted.internet.protocol.ClientFactory instance at 0x8d014cc>
2012-05-12 15:39:55-0300 [PassportNexus,client] Stopping factory <twisted.internet.protocol.ClientFactory instance at 0x8c710ec>
2012-05-12 15:39:56-0300 [PassportLogin,client] Stopping factory <twisted.internet.protocol.ClientFactory instance at 0x8d014cc>
2012-05-12 15:39:51-0300[-]日志已打开。
2012-05-12 15:39:51-0300[-]启动工厂
2012-05-12 15:39:52-0300[调度,客户]启动工厂
2012-05-12 15:39:52-0300[调度,客户]停止工厂
2012-05-12 15:39:53-0300[通知,客户]开始工厂
2012-05-12 15:39:53-0300[通知,客户]未处理的错误
回溯(最近一次呼叫最后一次):
callWithLogger中的文件“/usr/lib/python2.7/dist packages/twisted/python/log.py”,第84行
返回callWithContext({“system”:lp},func,*args,**kw)
callWithContext中的文件“/usr/lib/python2.7/dist packages/twisted/python/log.py”,第69行
返回context.call({ILogContext:newCtx},func,*args,**kw)
callWithContext中的文件“/usr/lib/python2.7/dist packages/twisted/python/context.py”,第118行
返回self.currentContext().callWithContext(ctx,func,*args,**kw)
callWithContext中的文件“/usr/lib/python2.7/dist packages/twisted/python/context.py”,第81行
返回函数(*参数,**kw)
---  ---
文件“/usr/lib/python2.7/dist-packages/twisted/internet/selectreactor.py”,第146行,in_-doReadOrWrite
为什么=getattr(可选,方法)()
文件“/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py”,第460行,在doRead中
rval=self.protocol.dataReceived(数据)
dataReceived中的文件“/usr/lib/python2.7/dist packages/twisted/protocols/basic.py”,第564行
为什么=self.lineReceived(行)
文件“/usr/lib/python2.7/dist-packages/twisted/words/protocols/msn.py”,第670行,在lineReceived中
处理程序(params.split())
文件“/usr/lib/python2.7/dist packages/twisted/words/protocols/msn.py”,第848行,在handle_usr中
authData=params[3])
文件“/usr/lib/python2.7/dist packages/twisted/internet/defer.py”,执行中的第108行
返回成功(结果)
文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,第71行
d、 回调(结果)
文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,第360行,在回调中
断言不存在(结果,延迟)
异常。断言错误:
2012-05-12 15:39:53-0300[通知,客户]停止工厂
2012-05-12 15:39:55-0300[PassportNexus,客户]启动工厂
2012-05-12 15:39:55-0300[PassportNexus,客户]停止工厂
2012-05-12 15:39:56-0300[密码登录,客户端]停止工厂
  • Python 2.7.2+
  • 扭曲11.0.0
  • pyopenssl0.12

我以前从未使用过t.w.protocols.msn协议,但在我看来,Twisted的
msn.py
中似乎有一个bug。下面是有问题的函数:

def handle_USR(self, params):
    if len(params) != 4 and len(params) != 6:
        raise MSNProtocolError, "Invalid Number of Parameters for USR"

    mechanism = params[1]
    if mechanism == "OK":
        self.loggedIn(params[2], unquote(params[3]), int(params[4]))
    elif params[2].upper() == "S":
        # we need to obtain auth from a passport server
        f = self.factory
        d = execute(                                                   # <------- here
            _login, f.userHandle, f.password, f.passportServer,
            authData=params[3])
        d.addCallback(self._passportLogin)
        d.addErrback(self._passportError)
def handle_USR(self,params):
如果len(params)!=4和len(参数)!=6:
引发MSNProtocolError,“USR的参数数无效”
机制=参数[1]
如果机制==“正常”:
self.loggedIn(参数[2],unquote(参数[3]),int(参数[4]))
elif参数[2]。上限()=“S”:
#我们需要从passport服务器获取身份验证
f=自组装工厂
d=执行(#