Ошибка структуры Не удалось найти обработчиков для логгера paramiko.transport

Я не уверен, почему я получаю эту ошибку, которая прерывает мое соединение. Обновил paramiko-1.7.6 с 1.7.5 через easy_install.

Я пытаюсь настроить Fabric для загрузки моего приложения Django на мой сервер. Ошибка возникает, когда я пытаюсь сделать резервную копию существующего каталога приложений:

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)

Я установил:

env.hosts  
env.password

В fabfile и я не уверен, как ориентироваться в этой ошибке обработчика.


person BryanWheelock    schedule 25.11.2009    source источник
comment
Не могли бы вы опубликовать полный текст исключения или предупреждения, из-за которого программа завершает работу или разрывает ваше соединение?   -  person jathanism    schedule 25.11.2009
comment
Где бы мне найти эту информацию? Фрагмент, который я скопировал, это все, что я вижу.   -  person BryanWheelock    schedule 25.11.2009
comment
Когда вы выполняете run(cmd) в своем скрипте, какой результат вы видите? Это отображается как предупреждение или ошибка?   -  person jathanism    schedule 25.11.2009
comment
Причина отсутствия обработчиков описана здесь: stackoverflow.com/questions/19152578/   -  person kkurian    schedule 31.10.2013
comment
Я получаю эту проблему, когда один из серверов в списке env.roledefs не отвечает.   -  person MagicLAMP    schedule 13.11.2017


Ответы (3)


Оказывается, эта ошибка возникла из-за того, что я не настроил env.password как простую строку.

И env.user, и env.password должны быть простыми строками, а не списками. Документация

person BryanWheelock    schedule 30.11.2009

Если это не вызывает проблемы, вы можете спокойно игнорировать это сообщение.

В этом случае библиотека (парамико) ожидает, что приложение будет обрабатывать журнал. Однако программист приложения, вероятно, ожидал, что библиотека не будет иметь никаких побочных эффектов и будет правильно вести журнал.

См. Настройка ведения журнала для библиотеки.

person JimB    schedule 25.11.2009
comment
Скорее наоборот - ваше соединение обрывается, а paramiko пытается зафиксировать ошибку. Это сообщение выводится на консоль, но никаких исключений не возникает. - person JimB; 25.11.2009
comment
вы можете смело игнорировать это сообщение. Это не обязательно правда. Вывод может быть осмысленным и показывать ошибку в вашей программе. Чтобы понять сообщение об ошибке, вы можете вставить import logging; logging.getLogger('paramiko.transport').addHandler(logging.StreamHandler()) в начало вашего fabfile, и он отобразит сообщение журнала. - person sitaktif; 21.06.2014
comment
@sitaktif: вау, это было давно. Да, я, вероятно, должен был уточнить, если это не вызывает проблемы. Парамико IIRC в это время будет регистрировать безобидные сообщения без обработчика, вызывая эту ошибку регистрации. - person JimB; 21.06.2014

В дополнение к предыдущим ответам:

Если вы хотите найти основную причину ошибки в вашем приложении, полезно включить ведение журнала, о чем сигнализирует сообщение:

Ошибка фабрики Не удалось найти обработчиков для логгера «paramiko.transport»

Вы можете включить ведение журнала из paramico в ткани следующим образом:

from fabric.network import ssh

ssh.util.log_to_file("paramiko.log", 10)
person Mateusz Kleinert    schedule 31.01.2017