Frage

Expect ist ein Modul, das zum Erstellen und Steuern untergeordneter Anwendungen verwendet wird.Ich interessiere mich für Python und Ruby.

War es hilfreich?

Lösung

Es gibt WExpect für Python.

Hinweise in der wexpect.py Datei (Tippfehler unverändert und Hervorhebung hinzugefügt)

Wir erwarten ist eine Portierung von pexpext auf Windows.Da Python für Windows die erforderlichen Module (Pty, Tty, Select, Termios, FCTNL und Ressource) für die Ausführung von Pexpect fehlen, war es erforderlich, ein Back-End zu erstellen, das alle verwendeten Funktionen implementiert, die sich auf diese Module stützten. Wtty.py ist das Backend.In den Windows World Consoles sind Konsolen nicht homogen.Sie können Eingangs- und Ausgangsfunktionen mit niedrigem oder hohem Niveau verwenden und um beide Fälle korrekt umzugehen Eine Instanz von Wtty. Spawner.py ist von Lese- und Rohrleitungsdaten zurückzuführen.

Ich habe so viel Code intakt wie möglich gelassen und versucht, so viele Kommentare intakt zu lassen (besonders für Funktionen, die nicht geändert wurden), so dass viele der Kommentare in ihrer Beziehung zu OS -spezifischen Funktionen irreführend sein werden.Auch, Die Funktionen SendControl und SendEOF sind zu diesem Zeitpunkt nicht implementiert, da ich keine aussagekräftigen Windows -Versionen dieser Funktionen finden konnte.
Darüber hinaus haben Konsolen keine Fild -Deskriptoren unter Windows, sodass die globale variable child_fd immer keine ist.

Andere Tipps

winpexpect ist ein nativer Port von pexpect auf Windows. Es ist hier zu finden:

https://github.com/geertj/winpexpect

Sie können die Windows-CMD-Eingabeaufforderung verwendet werden.

Sie müssen Python in Ihrer Windows-Installation installiert haben.

eine Befehlszeile öffnen und den folgenden Befehl ausführen:

C:\Users\xxx>pip install pexpect (wenn Sie den Python-Pfad in einer Systemvariablen gesetzt haben)

oder

C:\Users\xxx>c:\python27\scripts\pip.exe install pexpect

Collecting pexpect
  Downloading pexpect-4.0.1.tar.gz (143kB)
    100% |################################| 147kB 1.2MB/s
Collecting ptyprocess>=0.5 (from pexpect)
  Downloading ptyprocess-0.5.1-py2.py3-none-any.whl
Building wheels for collected packages: pexpect
  Running setup.py bdist_wheel for pexpect
  Stored in directory: C:\Users\xxx\AppData\Local\pip\Cache\wheels\f2\65\89\09578bcd0efeabc7e2b0079cd62d3955c1477f2e55aa5031a4
Successfully built pexpect
Installing collected packages: ptyprocess, pexpect
Successfully installed pexpect-4.0.1 ptyprocess-0.5.1

Die neueste Arbeitsversion von wexpect lebt unter http: // Salbei. math.washington.edu/home/goreckc/sage/wexpect/

Hoffentlich wird es bald verschmolzen Upstream werden.

Mit pexpect https://github.com/pexpect/pexpect

"Pexpect ist reiner Python", so dass es überall läuft, ohne Cygwin auch

edit: pexpect hängt von pty-Modul, das derzeit nur für Linux verfügbar ist, so wie Nik vorgeschlagen, dass Sie sollten wexpect werden, der eine Portierung von pexpect ist

Ich habe erfolgreich Pexpect unter Cygwin verwendet. Denn jetzt gibt es keine andere Möglichkeit, aufgrund POSIX Kompatibilitätsprobleme unter Windows.

Eine andere Sache: WExpect wie Pexpect, in der Tat funktioniert es erfordert Cygwin! An diesem Punkt ist pexpect eine bessere Wahl.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top