美好的一天。
paramiko ssh 客户端有一个奇怪的问题。 Connect paramiko 方法在 unittest2 类/函数外部调用时挂起,代码由 unittest runner 运行。
有一段代码,出现问题的地方:
import paramiko
import unittest2
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('172.18.67.10',
username='root',
password='secrete')
_, stdout, _ = ssh.exec_command('date')
class TestTest(unittest2.TestCase):
def setUp(self):
pass
如果我将 ssh.connect 移动到 TestTest 类或 setUpModule 函数中,连接将会成功。当代码由原始 Python 解释器运行时,一切都正常。
当我尝试调试 paramiko 时,我在 paramiko/auth_handler.py:AuthHandler.wait_for_response 方法中的 .while True 循环中发现了这个问题
有什么建议吗?
请您参考如下方法:
根据 this SO answer ,这似乎是 paramiko 中与线程相关的错误,可以通过在导入期间不调用 connect() 来避免。
