2010-11-16 8 views
15

Ich bin auf pexpect gestolpert und mein Eindruck ist, dass es in etwa ähnlich zu fabric aussieht. Ich habe versucht, einen Vergleich zu finden, ohne Erfolg, also frage ich hier - falls jemand Erfahrung mit beiden Werkzeugen hat.Stoff vs Pexpect

Ist mein Eindruck (dass sie ungefähr gleichwertig sind) richtig, oder ist es nur so, wie es auf der Oberfläche aussieht?

Antwort

14

Ich habe beide verwendet. Fabric ist höher als Pexpect, und IMHO viel besser. Es hängt davon ab, wofür Sie es verwenden, aber wenn Sie Software einsetzen und konfigurieren, ist Fabric der richtige Weg.

+1

Ich stimme Jon zu. Früher habe ich pexpect benutzt, aber jetzt führe diese Aufgaben mit Stoff und gelegentlich http://codespeak.net/execnet/ –

+0

durch Danke für die Antworten! –

+1

"Es hängt davon ab, wofür Sie es verwenden", gibt es einen Bereich, in dem pexpect über den Stoff hinausgeht? – osmosis

4

Es gibt verschiedene Anwendungsfälle für beide. Etwas, was Pexpect tut, ist, dass Fabric nicht den Zustand bewahrt. Jeder Fabric api Befehl (zB: run/sudo) ist ein eigener Befehl. Also wenn du es tust:

run("cd project_dir && workon project") 
run("make") 

Dies wird nicht in diesem Verzeichnis sein, noch wird es in der virtualenv sein. Obwohl es jetzt in Fabric Context Manager für cd() gibt, wird jedem Lauf mehr oder weniger eine CD vorangestellt.

In dem Schema der Dinge hat dies wenig Einfluss darauf, wie die Mehrheit der Projekte funktioniert, und ist im Wesentlichen unbemerkt. Für einige Bedürfnisse können Sie jedoch pexpect verwenden, um diesen Status zu verwalten, für mehrere Sudos oder eine Art interaktiver Task, der nicht mit Flags automatisiert werden kann.

All dies ist jedoch kein Nachteil für Fabric, da es sich nur um Python handelt, können Sie Pexpect-Code in Fabric-Aufgaben aufnehmen.

Obwohl Fabric im Grunde genommen die ganze harte Arbeit von Remoteverbindungen und das Ausführen von Befehlen besser bewältigt, als wenn Sie Code von Grund auf mit pexpect schreiben würden.

aktualisieren Ich habe ein Projekt informiert worden, die mit Stoff und pexepect funktioniert, können Sie mehr zu diesem question's answer