подавить вывод Paramiko stderr

1

Я использую paramiko как часть скрипта python. В этом скрипте я также использую модуль протоколирования python для входа в журнал и stderr. Только то, что я указываю через logger.debug, logger.info и т.д., Должно отображаться на консоли. К сожалению, когда я звоню в paramiko следующим образом:

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=user, key_filename=keyfile)

Следующие сообщения выводят на stderr:

CryptographyDeprecationWarning: подписчик и верификатор устарели. Вместо этого используйте знак и проверьте.

Я попытался подавить, изменив paramiko logging на CRITICAL следующим образом:

logging.getLogger("paramiko").setLevel(logging.CRITICAL)

Также, направляя его в файл следующим образом:

paramiko.util.log_to_file('filename.log')

Но никто не работает.

Есть ли способ, чтобы эта остановка отображалась как консольный вывод?

Теги:
logging
paramiko

1 ответ

0

Это проблема, которая все еще существует с paramiko==2.4.2; он запланирован, по-видимому, к следующему выпуску 2.x, так что скорее всего к 2.5.

Проблема, которую они заявляют, по сути, "старая paramiko, новая cryptography "

А пока вы можете попробовать это исправить:

pip uninstall cryptography ; pip install cryptography==$DESIRED_VERSION

Замените $DESIRED_VERSION версией, которая вам нужна. paramiko 2.4.2 был выпущен в сентябре 2018 года, последняя версия, которая выглядит совместимой, - это криптография 2.3.1. В моей настройке это работает.

По сути, это означает, что вы должны понизить свой пакет криптографии, поэтому подумайте дважды, прежде чем делать это.

  • 0
    к сожалению, у меня нет возможности сделать это в этом случае, и в итоге я нашел альтернативу, так как я не смог решить эту проблему. Но этот ответ очень полезен, спасибо, что сообщили мне об этом!
  • 0
    Разве это не возможно с помощью virtualenv ? на случай, если это поможет. да, мне пришлось искать ответ, и этот пост продолжал появляться, так что подумал, что я отвечу :-)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню