使用cx_Freeze

时间:2018-11-13 01:21:35

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

我正在尝试使用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.

2 个答案:

答案 0 :(得分:2)

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

要创建.EXE:

  

pyinstaller -wF yoursourcefile.py

我会先升级您的PySimpleGUI软件包。

答案 1 :(得分:2)

  1. cx_Freeze尚不支持Python 3.7,但存在一个错误。有一个错误修正,但尚未发布,但是您可以手动应用它,请参见What could be the reason for fatal python error:initfsencoding:unable to load the file system codec?Cx_freeze crashing Python3.7.0。或者,如果您愿意,可以回滚到Python 3.6。
  2. 您是否检查过C:\\Program Files\\Python37\\tcl\\tcl8.6存在?无论如何,最好像this answer一样,让安装脚本使用PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))动态地确定Python安装目录。
  3. 您需要告诉cx_Freeze使用build_exe选项include_files来包含Tcl和Tk DLL,就像在the same answer中所做的那样;如果您使用的是cx_Freeze 5.1.1或5.1.0,则需要稍微做些不同,请参见this answer