Python 3.5.3上cx_Freeze的错误

时间:2017-06-26 15:51:09

标签: python python-3.x cx-freeze

运行Python 3.5.3和最新的cx_Freeze。构建exe时,一切运行正常。但是,当我运行exe时,我得到一条对话消息说:

 # If this fails your Python may no be configured for Tk
 ImportError: DLL load failed: The specified module could not be found.

我按照找到的解决方案here(使用文件方法的第二个答案,而不是明确指定路径 - 这是我首先尝试使用相同的结果)。并且尝试了找到here的解决方案,但我在运行exe时仍然遇到错误。

这是我的setup.py文件:

import os
import sys
from cx_Freeze import setup, Executable


PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
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')

options = {
    'build_exe': {
        'include_files':[
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
            os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
         ],
    },
}

setup(
    name="Drawings Converter",
    version="1.0",
    description="Converts PDF files named by part number to PDF files named by reference number",
    executables=[Executable("DrawingsConverter.py", base="Win32GUI")])

任何人都知道我可能会缺少什么?这是我第一次使用cx-Freeze,而且我对Python也很陌生。任何有助于我学会在将来避免这个问题的详细信息将非常感激。提前谢谢!

编辑:我通过将.dll文件复制到构建目录来解决了这个问题。但是,如果有人能够告诉我为什么cx_Freeze没有这样做或者找不到它们,我仍然会感激不尽。

1 个答案:

答案 0 :(得分:0)

通过手动将.dll文件复制到构建目录来解决。