2012-05-15 8 views
10

Ich möchte ein expect-like-Modul in Python3 verwenden. Soweit ich weiß, arbeiten weder Pexpect noch Fabric mit python3. Gibt es ein ähnliches Paket, das ich verwenden kann? (Wenn nein, weiß jemand, ob py3 Unterstützung für jedes Projekt Roadmap ist?)Gibt es eine Implementierung von 'expect' oder eine expect-like Bibliothek, die in python3 funktioniert?

Ein perfekt überlappende Feature-Set ist nicht erforderlich. Ich denke nicht, dass mein Anwendungsfall hier notwendig ist, aber ich implementiere grundsätzlich ein Linux-Expect-Skript, das ein Telnet mit einigen von der Konfiguration bereitgestellten Befehlen ausführt, aber die Funktionalität erweitert.

+4

haben Sie versucht 2to3 auf pexpect zu sehen, ob es dann funktioniert? Die expect fork http://pypi.python.org/pypi/pexpect-u/ sagt, dass es so funktioniert, also vielleicht auch erwartet. –

+1

@NiekdeKlein, 2to3 ist ein sehr einfaches Tool, das viele verschiedene Probleme nicht berücksichtigt; Ich wäre erstaunt, wenn ein Projekt von der Größe von pexpect "einfach funktioniert", indem es nur 2to3 läuft. Selbst wenn dies "funktionieren" würde, wie können Sie erwarten, Unterstützung vom Autor zu erhalten, wenn etwas schief gelaufen ist? Übrigens wurde Pexpect für alle wesentlichen Zwecke von Noah aufgegeben ... sein letzter Quellcode Commit war 2008. –

+0

@Mike Pennington Ich habe nur gesagt, dass es für eine Abzweigung von Pexpect funktioniert hat, also gibt es eine Chance, dass es auch funktioniert pexpect selbst. Es dauert nur wenig Zeit, um es zu testen (einfach das Programm ausführen und sehen, ob es funktioniert). Wenn nicht, ist kein Schaden angerichtet. Wenn ja, umso besser. –

Antwort

8

Wie Niek erwähnt, ich portiert pexpect, und nannte es pexpect-u (u für Unicode):

http://pypi.python.org/pypi/pexpect-u/

Es 2to3 verwendet, aber ich musste einige Änderungen an der machen Code, bevor es funktionierte.

Ich bin nicht sehr interessiert es bei der Erhaltung, aber ich konnte nicht mit dem Autor von pexpect in Kontakt treten, und ich spürte es nützlich genug war die Veröffentlichung wert zu sein. Wenn Sie daran interessiert sind, daran zu arbeiten, ist der Code on Bitbucket. Mein eigener Bedarf war sehr einfach, also könnte es Fehler geben, die ich nicht gefunden habe.

+0

Wie @belacqua in einer anderen Antwort zeigt, ist Pexpect-u jetzt nicht mehr aktiv und Pexpect selbst unterstützt Python 3. –

2

Glücklicherweise unterstützt pexpect jetzt Python 3 (ab 2013, wenn nicht früher).

Es scheint, dass @ThomasK der Lage war, seine pexpect-u Python 3-Funktionalität (mit einigen API-Änderungen) wieder in das Hauptprojekt hinzuzufügen. (Danke Thomas!)