2009-06-25 5 views

Antwort

17

Dort ist WExpect for Python.

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

Wexpect ist eine Portierung von pexpext auf Windows. Da python für Windows die erforderlichen Module (pty, tty, select, termios, fctnl und resource) zum Ausführen von pexpect fehlte, war es notwendig, ein Backend zu erstellen, das alle Funktionen implementierte, die auf diesen Modulen beruhten . Wtty.py ist dieses Back-End. In sind die Windows-Weltkonsolen nicht homogen. Sie können niedriges Niveau verwenden oder hohe Level Ein- und Ausgabefunktionen und richtig zu behandeln beiden Fälle zwei Kindprozesse für Instanz zu den Spawn erstellt werden, mit einem intermidate Kind , die kontinuierlich von der Konsole lesen kann, und diese Daten senden über ein Rohr zu einer Instanz von wtty. Spawner.py ist aus dem Lesen und Verrohrung Daten.

Ich habe so viel Code intakt gelassen, wie ich konnte und auch versucht, so viele Kommentare intakt ist möglich (espicially für Funktionen, die nicht geändert wurden) zu verlassen, so viele der Kommentare wird in ihrer Beziehung irreführend zu os spezifische Funktionalität. Auch sind die Funktionen sendcontrol und sendeof diesmal unter nicht sinnvoll, da ich keine sinnvollen Windows-Versionen dieser Funktionen finden konnte. zusätzlich
, Konsolen haben nicht zugeordnet fild Deskriptoren auf Windows, so dass die globale Variable child_fd immer keine sein.

+0

@Symmetric (wenn Sie Python-Pfad in der Systemvariablen festgelegt): Sie auf den Link geändert haben auf [ 'winpexpect'] (http Punkt: // bitbucket .org/geertj/winpexpect). Aber ['wexpect'] (http://sage.math.washington.edu/home/goreckc/sage/wexpect/) ist ein anderes Modul. – jfs

+0

@ J.F.Sebastian: Guter Ort, diese alten Links waren kaputt, so dass ich nicht viel über wexpect herausfinden konnte. Fest. – Symmetric

2

Verwenden pexpect https://github.com/pexpect/pexpect

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

edit: pexpect auf pty Modul abhängt, die derzeit nur für Linux verfügbar ist, so wie Nik schlug vor, dass Sie wexpect verwenden sollten, das ein Port von pexpect ist

0

Ich weiß, es ist eine alte Post, aber ich habe erfolgreich Pexpect unter Cygwin verwendet. Momentan gibt es keinen anderen Weg wegen POSIX-Kompatibilitätsproblemen unter Windows.

Eine andere Sache: WExpect wie Pexpect arbeitet, infact es erfordert Cygwin! An diesem Punkt ist PExpect eine bessere Wahl.

Hope this

Fabio

5

helfen Sie können Fenster Prompt verwenden CMD.

Sie müssen Python in Ihrem Windows installiert haben.

öffnen Sie die Eingabeaufforderung cmd und führen Sie den folgenden Befehl aus.

C:\Users\xxx>pip install pexpect

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 
Verwandte Themen