使用 cx_Freeze 冻结 Python 3.7 脚本时如何修复错误

How do I fix an Error when Freezing Python 3.7 Script using cx_Freeze

我正在尝试使用 cx_Freeze 使用我的 python 脚本创建一个独立的可执行文件。 这是我收到的错误:error: [Errno 2] No such file or directory: 'C:\Program Files\Python37\tcl\tcl8.6'

这与使用 PySimpleGUI 等模块有什么关系吗?我正在使用 PySimpleGUI 3.1.2.

我该如何解决这个问题?

这是我的代码 (setup.py and Track_Companion.py)。

Note: Track_Companion.py is not yet finished.

可以在文档中找到使用 PySimpleGUI 从程序制作 .EXE 文件的说明 here

要创建 .EXE:

pyinstaller -wF yoursourcefile.py

我会先升级你的 PySimpleGUI 包。

  1. cx_Freeze 还不支持 Python 3.7,它有一个错误。存在错误修复但尚未发布,但您可以手动应用它,请参阅 and Cx_freeze crashing Python3.7.0。或者您可以回滚到 Python 3.6,如果这是您的选择。
  2. 你检查过 C:\Program Files\Python37\tcl\tcl8.6 存在吗?无论如何,让您的安装脚本使用 PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__)) 动态确定您的 Python 安装目录会更好,就像在 .
  3. 中所做的那样
  4. 您需要告诉 cx_Freeze 使用 build_exe 选项 include_files 包含 Tcl 和 Tk DLL,就像在 ; if you are using cx_Freeze 5.1.1 or 5.1.0, you need to do it slightly differently, see 中所做的那样。