Python paramiko日志记录混乱stfp连接

时间:2012-10-29 10:17:36

标签: python paramiko

我正在使用paramiko打开sftp连接来访问远程文件。我在下面的内置函数中的所有代码似乎只有在我没有为paramiko启用日志记录时才有效:

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

所以当我的文件中没有上面的代码行时,下面的代码可以工作:

        client = paramiko.SSHClient()
        client.load_system_host_keys()
        client.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
        client.connect( hostname,user, password)
        sftp = client.open_sftp()
        file = sftp.open( fpath, mode='r', bufsize=1 )

否则python将在此行 client.connect(主机名,用户,密码)上挂起并写入stderr日志,就像疯狂最终杀死我的代码正在运行的VM一样。

特别是paramiko挂在这一行:

t.start_client()

在client.connect方法中。 paramiko日志中没有任何有用的东西,stderr充满了没有描述或回溯的错误。

研究这个问题我遇到了“有一个可用的导入锁,所以当子线程尝试另一个导入时它可以无限期地阻止它”我如何确保打开sftp连接的代码永远不会被阻止?

1 个答案:

答案 0 :(得分:0)

这是一个很长的镜头,但是我遇到了logging使用线程导致死锁的问题。我无法跟踪确切的问题(尽管我怀疑使用subprocess可能会加剧;但我确实通过禁用logging模块的线程支持来解决它。

在激活日志记录之前尝试此操作:

import logging
logging.thread = None

我有兴趣知道这是否能解决您的问题。