cx_Freeze EXE应用程序尽快关闭,因为它打开没有任何错误

问题描述 投票:1回答:1

我已经开发了一个Tkinter的GUI应用程序和使用cx_Freeze将它转换成exe文件。

exe文件是工作的罚款。但过了些日子,当我尝试打开它,它已经开始应用,并立即关闭。我也尝试创建批处理文件,看是否有错误被抛出。但是,没有错误。这一切后我试图用相同的设置文件再次生成一个新的版本。它运作良好,并且应用程序正常打开。但我不知道什么是与旧的问题。

请帮我,如果有人看到这个怪异的行为。

仅供参考我下面复制我的安装文件:

import os
from cx_Freeze import setup, Executable

os.environ['TCL_LIBRARY'] = 'C:/Program Files/Python3.6/tcl/tcl8.6'
os.environ['TK_LIBRARY'] = 'C:/Program Files/Python3.6/tcl/tk8.6'

buildOptions = dict(
    packages = ["pandas","tkinter","numpy","pandatables","Images"],
    excludes = [],
    include_files=['C:/Program Files/Python3.6/DLLs/tcl86t.dll', 'C:/Program Files/Python3.6/DLLs/tk86t.dll']
)

import sys
base = 'Win32GUI' if sys.platform=='win32' else None

executables = [
    Executable('DE.py', base=base)
]

setup(name='DE Validator',
      version = '1.0',
      description = '',
      options = dict(build_exe = buildOptions),
      executables = executables)'
python cx-freeze
1个回答
0
投票

对于cx_Freeze版本5.1.1中,TCL / TK DLL文件必须包含在构建目录的子目录lib。你可以通过传递一个元组(source, destination)include_files列表选项的相应条目做到这一点。

此外,这将是更安全的动态找出TCL / TK的DLL的位置。

尝试修改你的安装脚本如下:

import sys

PYTHON_INSTALL_DIR = os.path.dirname(sys.executable)
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')

buildOptions = dict(
    packages = ["pandas","tkinter","numpy","pandatables","Images"],
    excludes = [],
    include_files=[(os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
                    os.path.join('lib', 'tk86t.dll')),
                   (os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
                    os.path.join('lib', 'tcl86t.dll'))]
)
© www.soinside.com 2019 - 2024. All rights reserved.