Python 3.5.3 上的 cx_Freeze 错误

Posted

技术标签:

【中文标题】Python 3.5.3 上的 cx_Freeze 错误【英文标题】:Errors with cx_Freeze on Python 3.5.3 【发布时间】:2017-06-26 15:51:08 【问题描述】:

运行 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】:

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

【讨论】:

以上是关于Python 3.5.3 上的 cx_Freeze 错误的主要内容,如果未能解决你的问题,请参考以下文章

cx_freeze 问题与 mac 上的相对路径

PySide (1.1.2), cx_freeze, WinXP, Python 3.3: ImportError: DLL load failed

Python 2.7 Cx_Freeze: ImportError: No module named __startup__

Python 2.7 Cx_Freeze: ImportError: No module named __startup__

cx_Freeze 错误:基线图像目录不存在

cx_Freeze:主脚本中的 Python 错误。 Python 3.6 + cx_Freeze