我用pyinstaller把之前写的PostTool在Win和Linux下打包,说起来,是没有必要在Linux下再打个包的,默认都有安装python。
就当做是练习吧。 🙂 PostTool(win32/i386) PostTool(Linux/i386)
下载并安装pyinstaller: http://www.pyinstaller.org/
为了启用压缩,windows下还需要下载upx: http://upx.sourceforge.net/
我把upx.exe放在了python Scripts文件夹下的,比如: D:\Python27\Scripts
如果D:\Python27\Scripts不存在于用户的环境变量中,请记得添加。
pyinstaller是不支持把gif打包进exe作为图标的,我把Tkinter使用的gif图标首先转换成了64 x 64的ico。
首先生成spec文件(specification),执行:
E:\PythonAPP\Tkinter\TkPostTool>pyi-makespec –windowed –icon=icon.ico PostTool.py
–windowed参数指定这是一个GUI程序,不需要console来进行std input & output。
–icon参数指定生成的exe文件图标,它在Windows下有效。
打开生成的PostTool.spec文件,添加Post Tool用到的一个gif图片:
# -*- mode: python -*- a = Analysis(['PostTool.py'], pathex=['E:\\PythonAPP\\Tkinter\\TkPostTool'], hiddenimports=[], hookspath=None, runtime_hooks=None) pyz = PYZ(a.pure) exe = EXE(pyz, a.scripts, exclude_binaries=True, name='PostTool.exe', debug=False, strip=None, upx=True, console=False , icon='icon.ico') a.datas += [('icon.gif', 'E:\\PythonAPP\\Tkinter\\TkPostTool\\icon.gif', 'DATA')] coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=None, upx=True, name='PostTool')
再执行pyinstaller PostTool.spec,就可以生成所需的文件了。 Linux下操作类似,只是不需要ico。
打包后文件较大,超过10 mb。Tk就相当地大。
在windows下用VB或VC写个同样的Post程序,大约只有100kb。
在Linux下双击执行程序,还需要在属性中允许run as program: