TypeError:__init __()得到了一个意外的关键字参数'options'

问题描述:

我得到一个python脚本的错误。错误如下所示。在后面的源代码中,我从quesiton的各行中的session.py和ssh_session.py中获取了一段python脚本的代码片段。根据这个错误,看起来参数选项被赋予了super表示的类,其中该类不知道参数选项。棘手的部分是,虽然这是我第一次使用这套脚本,但我知道其他人一直都在成功地使用这套脚本。所以我开始想,也许我有一个相对于Python模块的版本问题。任何人都可以阐明一个错误的性质,当__init__会对一个意外的关键字参数造成犯罪时,它似乎适用于其他人?如果这是一个模块问题,我怎么才能真正知道论证何时或在哪个版本中存在或被删除?TypeError:__init __()得到了一个意外的关键字参数'options'

2017-03-17 16:23:36,303-07 ERROR  - File "/home/rmaes/.local/lib/python2.7/site-packages/ctf/ssh_session.py", line 92, in __init__ 
2017-03-17 16:23:36,303-07 ERROR  - interactOnFailure=interactOnFailure, verbose=verbose, logLevel=logLevel) 
2017-03-17 16:23:36,303-07 ERROR  - File "/home/rmaes/.local/lib/python2.7/site-packages/ctf/session.py", line 376, in __init__ 
2017-03-17 16:23:36,303-07 ERROR  - env=self.env) 
2017-03-17 16:23:36,303-07 ERROR  - TypeError: __init__() got an unexpected keyword argument 'options' 
2017-03-17 16:23:36,303-07 ERROR  - End traceback. 
2017-03-17 16:23:36,304-07 INFO   - END ANCILLARY "_testRunSuite" 
2017-03-17 16:23:36,304-07 INFO   - Exception forces exit because exit-on-error is True. 

ssh_session线92

super (Ssh, self).__init__(timeout=timeout, maxread=maxread, 
     searchwindowsize=searchwindowsize, logfile=logfile, cwd=cwd, env=env, 
     ignore_sighup=ignore_sighup, echo=echo, options=options, 
     encoding=encoding, codec_errors=codec_errors, 
     interactOnFailure=interactOnFailure, verbose=verbose, logLevel=logLevel) 


def login (self, host, username, password='', terminal_type='ansi', 
      original_prompt=r"[#$]", login_timeout=10, port=22, 
      auto_prompt_reset=True, ssh_key=None, quiet=True, 
      sync_multiplier=1, check_local_ip=True): 

session.py线375-376

# Instantiate the pxssh sub-class 
     super (PxsshSession, self).__init__(timeout=self.timeout, 
              maxread=self.maxread, 
              searchwindowsize=self.searchwindowsize, 
              logfile=self.logfile, 
              options=self.options, 
              ignore_sighup=self.ignore_sighup, 
              cwd=self.cwd, 
              env=self.env) 

所以看来一个变化Pexpect的4.0.1引入解决了我看到的问题但是,我仍然无法确定这种变化是什么。 GITHUB为4.0.1创建了一个标签,但没有官方发布,也没有发布说明。 4.1.0的正式版本说明似乎并没有暗示任何与“选项”被添加或删除为参数有关的任何事情。但很明显,除了pexpect 4.0.1之外的任何东西都会清除这个问题。