转自http://www.itoldme.net/archives/1242
为了把python发行到没有安装python的Windows环境使用,需要打包成exe可执行文件。现在常见的python打包工具有cx_Freeze、PyInstaller和py2exe,想想我当初接触python的时候,似乎只有py2exe,而且有不少问题时光荏苒,一切过的真快。本文介绍PyInstaller打包的使用。
一.准备工作
安装PyWin32
到http://sourceforge.net/projects/pywin32/下载 PyWin32,本文使用的是 pywin32-219.win-amd64-py2.7,地址:http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win-amd64-py2.7.exe/download
下载PyInstaller
到http://www.pyinstaller.org/下载PyInstaller并解压缩。本文使用PyInstaller 2.1。
或者使用pip安装,执行pip install pyinstaller
下载upx(可选)
到http://upx.sourceforge.net/下载upx,解压后把upx放在PyInstaller目录下,upx的作用是给生成的exe加壳,减小体积。
二.使用方法
cmd切换到PyInstaller文件夹,执行命令,如:
pyinstaller myscript.py
当然也可以添加输出选项,获得更好的exe可执行文件,如:
python pyinstaller.py --upx-dir -F xxx.py
-F用于制作独立的可执行程序,--upx-dir用于压缩文件。
注意:
- 网上教程常见的-X选项启用upx已经失效
- 如果upx.exe已经复制到PyInstaller文件夹下,会默认使用upx,如果不在文件夹下,可以使用--upx-dir选项,如--upx-dir=upx_dir,如--upx-dir=/usr/local/share/
- 如果upx.exe复制到了PyInstaller文件夹下,如果不想使用upx,需要添加参数 --noupx
三.常用参数介绍
-F 用于制作独立的可执行程序
--upx-dir 使用upx加壳从而压缩exe文件
--noconsole适用于Windows和Mac OS X,用于创建不显示控制台窗口的程序
其他
PyInstaller可以用于多个平台的打包,包括 Windows (32-bit and 64-bit),Linux (32-bit and 64-bit),Mac OS X (32-bit and 64-bit),experimentally Solaris and AIX。
PyInstaller也可以自定义ico文件等,完整使用手册参见http://pythonhosted.org/PyInstaller/