如何在我的 pyinstaller 打包应用程序中排除 tcl/tk 文件夹?

Sha*_*ane 6 python wxpython tkinter pyinstaller

我正在使用python(wxPython for UI)在windows 7上开发一个软件,pyinstaller是我用来打包的工具。但最近将 pyinstaller 升级到 3.1.1 后,tcl/tk目录中开始出现文件夹。并且 pyinstaller 2.1 捆绑了完全相同的源代码,因此找不到这样的文件夹,这应该是这样,因为我从未在任何地方使用过 tcl/tk。

我已经尝试过a.datas -= TOC([('tcl', None, 'DATA'), ('tk', None, 'DATA')]),但它不起作用。tcl/tk那么打包时如何排除呢?

mat*_*kie 3

破解 sys.modules 以删除 FixTk,并排除 tcl、tk 和 tkinter。

所以在你的 pyinstaller.spec文件中至少包括:

import sys
sys.modules['FixTk'] = None

a = Analysis(['kill_tk_test.py'],
    {...snipped...}
     excludes=['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
Run Code Online (Sandbox Code Playgroud)

来源:@remdragon https://github.com/pyinstaller/pyinstaller/wiki/Recipe-remove-tkinter-tcl