為了把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 xxxx.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/