介绍2种方法。cxFreeze和pyInstaller
一、cxFreeze下打包
网上曾经有人做过教程,但是似乎是有点久远的事情,没办法运行起来,且option的keyword都改了。
1.安装version为 cx_Freeze-4.3.win32-py2.7
2.安装成功后,会在py的安装目录下有一个文件
\Path\Python27\Scripts看到cxfreeze.bat的批处理程序,但是默认的是一个不对的路径,需要手动设置
例如我的装在F盘,那么,我就改成了
F:\Python27\python.exe F:\Python27\Scripts\cxfreeze %*
3.最好将这个批处理放入system32下,方面在cmd上运行
4.查看打包命令,可以用cxfreeze -h查看详细,特别是如果之后他们再把版本改了,需要自己会查看命令
示意图如下:
5.打包
第一种是普通打包,命令很简单啦:
cxfreeze --target-dir = "d:\sample" sample.py
前一个d:\sample是你打包完了,想放在哪个路径下,它会新建文件夹,把打包依赖的东西放入里面!
后一个sample.py就是你自己要打包的py脚本啦
第二种是没有console控制台的打包方式,这种应用在wxPython这种带界面的,但是又是不需要控制台的
命令相对第一条来说,比较长,请看
cxfreeze --target-dir="d:\sam2" --base-name="F:\Python27\Lib\site-packages\cx_Freeze\bases\Win32GUI.exe" sample.py
多了一个--base-name,根据你安装的python下路径,会找到win32GUI,如果没有,可是没办法消除成功的啦!
二、PyInstaller下打包
这个相对来说前期工作简单啦,网上教程很多,提一下
下载它的zip,然后unzip了它,里面有一个README.txt,照着做就行了
Everyone should:
python Configure.py python Makespec.py /path/to/yourscript.py python Build.py /path/to/yourscript.spec .done.
另外PyInstaller打出来的包,结构很像py2app呢,哈哈,都有build和diet!
PyInstaller也可以给Mac OSX打包,不过没有不支持64bit,不记得是不支持电脑64bit,还是python64bit了。反正我没打包成功!
同一款文件,py2app打出来的在Mac OSX下是45M,但是其它2个在windows下,小很多啊,可能是系统依赖。我倒是没有用同一款打包过。
三、2种打包的对比
打包下来的程序大小,听说是PyInstaller更出色,但是我对比的结果,似乎是cxFreeze更出色,可能这个是成几何增长的吧。
cxFreeze打出来才15.0M,而PyInstaller打出来的有16.9M