抑制 Paramiko stderr 输出
suppress Paramiko stderr output
我正在使用 paramiko 作为 python 脚本的一部分。在此脚本中,我还使用 python 的日志记录模块来记录日志文件和标准错误。只有我通过 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 的日志记录更改为 CRITICAL 来抑制这种情况:
logging.getLogger("paramiko").setLevel(logging.CRITICAL)
以及将其定向到这样的文件:
paramiko.util.log_to_file('filename.log')
但都不起作用。
有没有办法让这个停止显示为控制台输出?
这个问题在 paramiko==2.4.2
中仍然存在;显然是 for the next 2.x release,所以很可能是 2.5。
他们陈述的问题本质上是,"older paramiko
, newer cryptography
"
在此期间,您可以试试这个来修复它:
pip uninstall cryptography ; pip install cryptography==$DESIRED_VERSION
将 $DESIRED_VERSION
替换为 the version you need。 paramiko 2.4.2 于 2018 年 9 月发布,看起来兼容的最新版本是 cryptography 2.3.1。在我的设置中,它有效。
这实质上意味着降级您的加密包,所以在您这样做之前请三思。
我正在使用 paramiko 作为 python 脚本的一部分。在此脚本中,我还使用 python 的日志记录模块来记录日志文件和标准错误。只有我通过 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 的日志记录更改为 CRITICAL 来抑制这种情况:
logging.getLogger("paramiko").setLevel(logging.CRITICAL)
以及将其定向到这样的文件:
paramiko.util.log_to_file('filename.log')
但都不起作用。
有没有办法让这个停止显示为控制台输出?
这个问题在 paramiko==2.4.2
中仍然存在;显然是 for the next 2.x release,所以很可能是 2.5。
他们陈述的问题本质上是,"older paramiko
, newer cryptography
"
在此期间,您可以试试这个来修复它:
pip uninstall cryptography ; pip install cryptography==$DESIRED_VERSION
将 $DESIRED_VERSION
替换为 the version you need。 paramiko 2.4.2 于 2018 年 9 月发布,看起来兼容的最新版本是 cryptography 2.3.1。在我的设置中,它有效。
这实质上意味着降级您的加密包,所以在您这样做之前请三思。