2009-11-25 15 views
5

Ich bin nicht sicher, warum ich diesen Fehler bekomme, der meine Verbindung beendet. Ich habe paramiko-1.7.6 von 1.7.5 über easy_install aktualisiert.Fabric error Für den Logger "paramiko.transport" konnten keine Handler gefunden werden.

Ich versuche, Fabric einzurichten, um meine Django-App auf meinen Server hochzuladen. Der Fehler scheint der Fall zu sein, wenn ich eine Sicherung der bestehenden App-Verzeichnis zu machen versuchen:

def backup_current_install(): 
    now = datetime.datetime.now() 
    cmd="cp -r /home/path/django-projects/app /home/path/django-projects/app%s" % now.strftime("%Y%m%d_%I:%M:%S") 
run(cmd) 

ich gesetzt haben:

env.hosts 
env.password 

Im fabfile und ich bin nicht sicher, wie dies zu navigieren Handlerfehler.

+0

Können Sie bitte die vollständige Ausnahmebedingung oder den Warntext posten, der das Programm zum Beenden oder Beenden der Verbindung veranlasst? – jathanism

+0

Wo finde ich diese Informationen? Der Ausschnitt, den ich kopiert habe, ist alles, was ich sehe. – BryanWheelock

+0

Wenn Sie 'run (cmd)' in Ihrem Skript ausführen, welche Ausgabe sehen Sie? Wird es als Warnung oder als Fehler angezeigt? – jathanism

Antwort

9

Es stellt sich heraus, dass dieser Fehler ein Ergebnis von mir war, env.password nicht als einfache Zeichenfolge zu konfigurieren.

Beide env.user und env.password sollten einfache Strings, nicht Listen. Documentation

2

Wenn es kein Problem verursacht, können Sie diese Meldung ignorieren.

In diesem Fall erwartet die Bibliothek (paramiko), dass die Anwendung die Protokollierung verarbeitet. Der Anwendungsprogrammierer hat jedoch wahrscheinlich erwartet, dass die Bibliothek keine Nebenwirkungen hat und die Protokollierung ordnungsgemäß durchführt.

Siehe Configuring Logging for a Library.

+0

Der Fehler beendet die Verbindung – BryanWheelock

+4

Es ist eher anders herum - Ihre Verbindung wird beendet, und Paramiko versucht, den Fehler zu protokollieren. Diese Nachricht wird auf der Konsole ausgegeben, es wird jedoch keine Ausnahme ausgelöst. – JimB

+3

"Sie können diese Nachricht ignorieren." Dies ist nicht unbedingt wahr. Die Ausgabe kann sinnvoll sein und in Ihrem Programm einen Fehler anzeigen. Um die Fehlermeldung herauszufinden, können Sie 'import logging; logging.getLogger ('paramiko.transport'). addHandler (logging.StreamHandler()) 'am Anfang Ihrer Fabdatei und es wird die Protokollnachricht angezeigt. – sitaktif

0

Zusätzlich zu den bisherigen Antworten:

Wenn Sie eine Ursache für den Fehler in Ihrer Anwendung finden wollen es sinnvoll ist die Protokollierung zu aktivieren, die von der Nachricht signalisiert wurde:

Stoff Keine Handler für Logger „paramiko.transport“ werden Fehler könnte

gefunden Sie können die Protokollierung von paramico in Gewebe wie folgt aktivieren:

from fabric.network import ssh 

ssh.util.log_to_file("paramiko.log", 10) 
Verwandte Themen