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

时间:2017-03-17 23:43:34

标签: python python-2.7 pxssh

我从python脚本收到错误。错误如下所示。在源代码中,我有一个来自session.py和ssh_session.py的python脚本片段来自quesiton的行。基于该错误,似乎参数选项被赋予由super表示的类,其中该类不知道参数选项。棘手的部分是虽然这是我第一次使用这组脚本,但我知道其他人一直都在使用这组脚本。所以我开始想,也许我有一个相对于python模块的版本问题。任何人都可以了解一个错误的性质,其中__init__会在一个意想不到的关键字参数上犯规,当它似乎适用于其他所有人时?如果是模块问题,我怎么才能真正知道参数何时或在哪个版本中出现,或者被删除了?

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)

1 个答案:

答案 0 :(得分:0)

因此,看来pexpect 4.0.1中引入的更改解决了我所看到的问题,但是,我仍然无法确定该更改是什么。 GITHUB有一个为4.0.1创建的标签,但没有正式版本,也没有发行说明。 4.1.0的官方发行说明似乎暗示任何与"选项有关的事情"作为参数添加或删除。但显然,除了pexpect 4.0.1之外的任何事情都可以解决这个问题。