首页 > 解决方案 > Python 3.6 将 tkinter 转换为 exe 后 - SSH 功能停止工作

问题描述

在我转换为 exe 之后,ssh(paramiko) 功能不再起作用。它不连接到设备。
我已经包含了 paramiko 和 socket 包。任何想法?

它正在使用未转换的版本。

安装程序.py 文件

import cx_Freeze
from cx_Freeze import setup, Executable
import os
import sys
includes = []
include_files = ["C:\\Python36-32\DLLs\\tcl86t.dll",
                 "C:\\Python36-32\DLLs\\tk86t.dll",
                 "C:\\Gustavo\\PyCharmPortable\\new\\cpass.ico",
                 "C:\\Gustavo\\PyCharmPortable\\new\\py2.py",
                 "C:\\Gustavo\\PyCharmPortable\\new\\py3.py",
                 "C:\\Gustavo\\PyCharmPortable\\new\\tn.py",
                 "C:\\Gustavo\\PyCharmPortable\\new\\file1.csv"]
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = "C:\\Python36-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Python36-32\\tcl\\tk8.6"
base = 'Win32GUI' if sys.platform == 'win32' else None

setup(name='Password Change', version='0.1', description='Password Change',
      options={"build_exe": {"packages": ["tkinter","paramiko","PIL","socket","telnetlib"], "includes": includes, "include_files": include_files}},
      executables=[Executable('cp.py', base=base)])

标签: pythonpython-3.xparamiko

解决方案


尝试包括 socket.py/socketserver.py 和 _multiprocessing.pyd/_tkinter.pyd/_socket.pyd,这对我有用。

include_files = [
             "C:\\Python36-32\DLLs\\tcl86t.dll",
             "C:\\Python36-32\DLLs\\tk86t.dll",

             "Python36/Lib/socket.py",
             "Python36/Lib/socketserver.py",
             "Python36/DLLs/_multiprocessing.pyd",                
             "Python36/DLLs/_tkinter.pyd",
             "Python36/DLLs/_socket.pyd",

             "C:\\Gustavo\\PyCharmPortable\\new\\cpass.ico",
             "C:\\Gustavo\\PyCharmPortable\\new\\py2.py",
             "C:\\Gustavo\\PyCharmPortable\\new\\py3.py",
             "C:\\Gustavo\\PyCharmPortable\\new\\tn.py",
             "C:\\Gustavo\\PyCharmPortable\\new\\file1.csv",

推荐阅读