使用PyInstaller打包之前写的PostTool

我用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:

run-as-program

发表评论

您的电子邮箱地址不会被公开。