Ist es möglich, die Fabfile Stand-Alone zu machen? Ich bin nicht sehr gern mit dem externen Tool "fab". Wenn es mir gelingt, die fabfile standalone zu bekommen, kann ich die Datei innerhalb der (Eclipse / Pydev) IDE ausführen, sie leicht debuggen, Projektkonfigurationen und Pfade usw. verwenden Warum funktioniert das nicht?
%Vor% Wenn ich mich richtig erinnere, konnte ich die Fabric-API nicht dazu bringen, das zu tun, was ich wollte. Ich entschied mich dafür, die Extra-Ebene vollständig zu verlassen und
Obwohl es noch ein paar weitere Schritte gibt, können Sie auf diese Weise die SSH-Ebene direkt nutzen, anstatt subprocess
zu verwenden, um eine andere Python-Instanz zu spwanieren oder die Fabric-API herauszufinden. Ich habe mehrere Projekte, sowohl Web- als auch Konsolen, die Paramiko auf diese Weise verwenden und ich hatte nicht allzu viele Probleme.
Paramiko ist ausführlich dokumentiert .
Ich habe das obige Beispiel auf argv-Argumente abgestimmt, die Sie möglicherweise an lokale Befehle übergeben möchten, und geben eine optionale default_commands-Liste anstelle eines fest codierten Befehlsnamens an. Beachten Sie, dass der Dateiname eine .py-Erweiterung haben muss oder Fab sie nicht als fab-Datei erkennt!
%Vor%docs.fabfile.org/en/1.4.0/usage/library.html
"Wie in diesem Abschnitt erwähnt, ist der Schlüssel einfach der Lauf, Sudo und der andere Operationen suchen nur an einer Stelle beim Verbinden: env.host_string. Alle Die anderen Mechanismen zum Setzen von Hosts werden vom Fab-Tool interpretiert Wenn es ausgeführt wird, spielt es keine Rolle, wenn es als Bibliothek ausgeführt wird. "
Ich habe mir das gleiche Problem angesehen, als ich das gefunden habe. Ich erinnere mich auch an Erwähnung, dass env-Änderungen nicht in der gleichen Definition wie run, sudo sind, wenn sie in einer Fabdatei verwendet werden. Wer weiß, ob das im "Bibliotheksmodus" noch gilt.
EDIT: Hier ist ein Beispiel für diese Implementierung
%Vor%Dies ist meine modifizierte Version von Gregs Antwort , die das Standardverhalten so ändert, dass verfügbare Befehle angezeigt werden, anstatt eine Unmenge von Stoffoptionen aufzulisten .
%Vor%Ich fand die Lösung indirekt auf run fabric file umbenannt anders als fabfile.py und passwortloser ssh
%Vor% Dies funktioniert auch, wenn Ihre Datei nicht .py
Erweiterung hat.