2017-03-17 5 views
-1

Ich erhalte einen Fehler von einem Python-Skript. Der Fehler ist unten gezeigt. Im Quellcode weiter unten, habe ich einen Ausschnitt des Python-Skripts von session.py und ssh_session.py aus allen Zeilen in Frage. Basierend auf dem Fehler scheint es, dass die Parameteroptionen einer Klasse zugewiesen wurden, die mit super bezeichnet wird, wobei diese Klasse die Parameteroptionen nicht kennt. Der schwierige Teil ist, dass, obwohl ich zum ersten Mal mit diesem Satz von Skripten arbeite, ich weiß, dass andere Leute diesen Satz von Skripten die ganze Zeit erfolgreich verwenden. Also habe ich angefangen zu denken, dass ich vielleicht ein Versions-Problem relativ zu einem Python-Modul habe. Kann jemand Licht auf die Art eines Fehlers werfen, wo __init__ über ein unerwartetes Schlüsselwort-Argument schimpfen würde, wenn es für alle anderen zu funktionieren scheint? Wenn es ein Modulproblem ist, wie würde ich dann wissen, wann oder in welcher Version das Argument entstand oder entfernt wurde?TypeError: __init __() hat ein unerwartetes Schlüsselwort Argument 'Optionen'

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 Linie 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 Linie 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) 

Antwort

0

So scheint es, dass eine Änderung in pexpect 4.0.1 behebt das Problem vorstellen, die ich zu sehen bin aber ich bin immer noch nicht in der Lage zu bestimmen, was diese Veränderung war. GITHUB hat ein Label, das für 4.0.1 erstellt wurde, aber keine offiziellen Release- und Release-Notes. Die offiziellen Release-Notes für 4.1.0 scheinen nichts damit zu tun zu haben, dass "Optionen" als Parameter hinzugefügt oder entfernt werden. Aber alles andere als pexpect 4.0.1 klärt dieses Problem.

Verwandte Themen