paramiko在cx_Freeze之后无法正常工作?

时间:2018-04-04 21:18:55

标签: python ssh paramiko cx-freeze

所以我编写了这段代码,我使用Paramiko通过SSH连接到计算机,该脚本正常工作,但是当我使用cx_Freeze将其转换为“.exe”时,程序停止在“self.ssh.load_system_host_keys”工作,所以我从脚本中删除了该函数并且它保持正常工作(可能并不总是需要?),但是当我将脚本转换为.exe时,它是Paramiko的“self.ssh.connect”函数,现在似乎正在停止程序,我的意思是,没有异常提升,代码只是停止在那里运行而没有任何反应,任何想法?。

Paramiko和cx_Freeze有兼容性问题吗?

以下是我的代码的简化版本:

session.py (我实现了paramiko功能的类)

from paramiko import SSHClient, AutoAddPolicy

class Session:
    def __init__(self, host, user, password):
        self.user = user
        self.password = password
        self.host = host
        self.is_connected = False
        self.ssh = SSHClient()
        self.ssh.set_missing_host_key_policy(AutoAddPolicy())


    def assert_connection(self):
        # force connection
        time_start = time.time()
        while True:
            try:
                self.ssh.connect(self.host, username=self.user, password=self.password)
                self.is_connected = True
                return True
            except:
                print(time.time() - time_start)
                if (time.time() - time_start) > 3:
                    self.ssh.close()
                    return False

“主要”剧本

 import session
 import threading     

 def create_session(self):
      self.session = session.Session(self, self.active_session.host,
      self.active_session.user, self.active_session.password)
      t = threading.Thread(target=self.connect_via_ssh)
      t.start()

def connect_via_ssh(self):
    if self.session.assert_connection():
         #Do something

任何帮助将不胜感激!

修改

我无法弄清楚出了什么问题,但是我尝试使用pyinstaller,它确实有效!我打赌cx_freeze和paramiko有一些奇怪的错误。

0 个答案:

没有答案