耗时一个月,用python写的利用穿越火线交易所刷CF点的代码已经完成了。考虑到使用方便和学习的态度,我用Tkinter将源码创建为UI界面,如图所示。本文主要介绍如何将Tkinter创建的GUI打包为exe可执行文件,使用的是Pyinstaller。
1. pip来安装Pyinstaller模块。
2. 命令行输入:
pyinstaller -i 1.ico -F -w dealUI.py
-F生成一个文件,-w用于隐藏命令行。无法生成exe,提示'gbk' codec can't decode byte 0x80 in position 166: illegal multibyte sequence,原因是源码中有两行print输出,而我将默认带的stdout控制台去掉了(-w参数)。去掉这两行输出。
然后可以生成dealUI.exe,但是无法打开,提示failed to execute script dealUI。
3. 鉴于此错误,我需要增加-d参数(产生debug版本的可执行文件),并去除-w,生成exe之后,在命令行运行(cd到对应目录,输入.\dealUI),可查看调试信息,发现错误:
Traceback (most recent call last):
File "dealUI.py", line 238, in <module>
File "dealUI.py", line 233, in main
File "tkinter\__init__.py", line 1865, in wm_iconbitmap
_tkinter.TclError: bitmap "1.ico" not defined
将源码中
root.iconbitmap(rb'1.ico')
改为注释,再次生成exe,可以正常打开,但界面图标仍为默认图标。