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

时间:2016-03-30 04:28:02

标签: python tkinter wxpython 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

2 个答案:

答案 0 :(得分:0)

破解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'],

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

的@remdragon

答案 1 :(得分:0)

您可以在调用pyinstaller时使用添加数据选项:

await Task.Yield();