了解分发冻结的Python Tkinter应用所需的TCL文件
我正在尝试弄清楚在Python(Python 2.6/Python 2.7)的tcl文件夹中,哪些文件是必须的,以便使用Py2exe或类似工具来分发冻结的Python Tkinter应用程序。
一个简单粗暴的方法(以pyexe为例)是按照下面页面的第二个示例操作,然后把你的Python的tcl文件夹复制到你的dist文件夹中(作为一个tcl子文件夹)。
http://www.py2exe.org/index.cgi/TixSetup
不过,使用xcopy复制tcl文件夹的方法有个问题,就是它会复制很多可能不需要的额外文件。
例如,我的实验显示,在冻结Python 2.7 Tkinter应用程序时,以下这些tcl文件夹可能(??)是不需要的:
注意:数字大小是每个路径下所有文件的总和。
- tcl\tcl8.5\encoding 1415K(可以删除不适用的编码吗?有需要的UTF-8/Unicode编码吗?)
- tcl\tcl8.5\tzdata 1450K(tcl时钟演示的时区数据?)
- tcl\tcl8.5*.tcl 256K
- tcl\tix8.4.3\demos 246K
- tcl\tk8.5\demos 685K
我这样做是对的方向吗?如果不包括上述tcl内容,未来会不会遇到麻烦?
更好的是,有没有关于Python的tcl文件夹中这些文件的文档?
谢谢,
Malcolm
2 个回答
3
Donal说得没错,当然了。不过,你的问题也引起了其他好几个人的关注;如果你想深入了解这个问题,我强烈建议你去看看 Tkinter邮件列表 和相关的 维基。
5
你不需要那些演示(我希望如此;如果需要,那就太糟糕了!),但其他的东西可能是必须的。编码是用来在外部世界的字节和Tcl的字符之间转换的,而tzdata是用来处理时间的。你可以在把应用程序交给小范围用户时省略编码和tzdata——实际上,在Unix系统上,你可能可以完全不需要tzdata,因为系统会有最新的版本——但你要知道这样做会限制代码的可移植性。