一、前言
用Python开发的小工具有时需要编译打包为Windows(*.exe)、Mac等操作系统下的可执行性文件以供非程序员使用。
二、解决方案
1) Windows,建议用Pyinstaller,有必要的话还需修改*.spec文件的data项,补充入项目依赖的配置文件。
命令:pyinstaller 程序入口py文件
如果存在配置文件,工程最好按默认方式以文件夹方式打包,然后将入口exe文件建桌面快捷方式。
注意:打包文件夹不要放在含中文路径下。
2) Mac,同样可以使用Pyinstaller打包,不过这里推荐使用一种Mac工具Platypus。
使用shell脚本调用python工具,然后将virtualenv和python工程均打包入app。
使用这种工具的优先是能将工程打包为app,不再是文件夹,图形化傻瓜式操作;缺陷是打包后的app体积比较大。
https://github.com/sveinbjornt/Platypus
注意:如果是通过Pyinstaller打包Mac可执行文件,在修改spec文件时,不允许直接双击打开后编辑,需要使用类似sublime Text的编辑器编辑,否则会报莫名语法错误。
Mac使用虚拟环境virtualenv打包时,需要注意所使用python interpreter是否为Mac默认的,否则会报以下错误,需要修改软连接文件。
http://stackoverflow.com/questions/23233252/broken-references-in-virtualenvs
之前在打包的时候,由于我是在Mac下开发的,想在Mac下是不是可以通过软件就可以打包各操作系统对应的可执行性文件呢? 至少我现在还没找到合适办法,我是通过virtualbox+vagrant搭虚拟环境解决的。