Pyinstaller将python打包为EXE文件将python脚本打包为EXE文件有不少选择方案,本方案使用pyinstaller。
第一步:当然是到python的官网下载python并安装。
编写好python脚本并且运行正常。
第二步:到/下载最新版本的pyinstaller。
本文写作时是pyinstaller2.0,支持python2.3~2.7版本。
下载后解压到某个文件夹,如:c:\pyinstaller。
第三步:pyinstaller依赖一些windows的组件,需要到/projects/pywin32/下载相应python的版本,例如:python2.7的32位版:pywin32-218.win32-py2.7.exe第四步:进入pyinstaller目录,试运行看看是否安装正确。
以下是运行屏幕:C:\>cd c:\pyinstallerC:\pyinstaller>c:\python27\python pyinstaller.pyError:PyInstaller for Python2.6+on Windows needs pywin32.Please install from /projects/pywin32/#上面的错误提示安装pywin32-218.win32-py2.7.exe。
C:\pyinstaller>c:\python27\python pyinstaller.pyUsage:python pyinstaller.py[opts]<scriptname>[<scriptname>...]|<specfile>pyinstaller.py:error:Requires at least one scriptname file or exactlyone.spec-file#以上信息表示可以开展工作了。
#以下是测试一个python-tools.py文件的打包,文件放在当前目录的mytools文件夹里面C:\pyinstaller>c:\python27\python pyinstaller.py--console--onefilemytools\python-tools.py67INFO:wrote C:\pyinstaller\python-tools\python-tools.spec175INFO:Testing for ability to set icons,version resources...224INFO:...resource update available234INFO:UPX is not available.3179INFO:checking Analysis3179INFO:building Analysis because out00-Analysis.toc non existent3179INFO:running Analysis out00-Analysis.toc3189INFO:Adding Microsoft.VC90.CRT to dependent assemblies of final executable3218INFO:Searching for assemblyx86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww...3218INFO:Found manifestC:\WINDOWS\WinSxS\Manifests\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_ x-ww_d08d0375.manifest3228INFO:Searching for file msvcr90.dll3228INFO:Found fileC:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll3228INFO:Searching for file msvcp90.dll3228INFO:Found fileC:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll3238INFO:Searching for file msvcm90.dll3238INFO:Found fileC:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll3648INFO:Analyzing C:\pyinstaller\support\_pyi_bootstrap.py6486INFO:Analyzing C:\pyinstaller\PyInstaller\loader\archive.py6855INFO:Analyzing C:\pyinstaller\PyInstaller\loader\carchive.py7242INFO:Analyzing C:\pyinstaller\PyInstaller\loader\iu.py7329INFO:Analyzing mytools\python-tools.py8355INFO:checking Tree8365INFO:building because out00-Tree.toc missing or bad8365INFO:building Tree out00-Tree.toc8894INFO:checking Tree8894INFO:building because out01-Tree.toc missing or bad8905INFO:building Tree out01-Tree.toc9304INFO:Hidden import'encodings'has been found otherwise9315INFO:Looking for run-time hooks9315INFO:Analyzing rthook C:\pyinstaller\support/rthooks/pyi_rth_encodings.py 9585INFO:Analyzing rthook C:\pyinstaller\support/rthooks/pyi_rth_Tkinter.py10569INFO:Adding mon-Controls to dependent assemblies offinal executable11896INFO:Warnings written to C:\pyinstaller\python-tools\build\pyi.win32\python-tools\warnpython-tools.txt11906INFO:checking PYZ11906INFO:rebuilding out00-PYZ.toc because out00-PYZ.pyz is missing11917INFO:building PYZ out00-PYZ.toc13763INFO:checking PKG13774INFO:rebuilding out00-PKG.toc because out00-PKG.pkg is missing13774INFO:building PKG out00-PKG.pkg19944INFO:checking EXE19944INFO:rebuilding out00-EXE.toc because python-tools.exe missing19944INFO:building EXE from out00-EXE.toc19974INFO:Appending archive to EXE C:\pyinstaller\python-tools\dist\python-tools.exe#上面编译出来的exe能够正常运行了,但带一个黑色的console,以下重新编译,加入--windowed--icon,取消--consoleC:\pyinstaller>c:\python27\python pyinstaller.py--windowed--onefile--icon="c:\pyinstaller\mytools\ico.ico"mytools\python-tools.py69INFO:wrote C:\pyinstaller\python-tools\python-tools.spec119INFO:Testing for ability to set icons,version resources...139INFO:...resource update available149INFO:UPX is not available.2312INFO:checking Analysis2422INFO:checking PYZ2462INFO:checking PKG2542INFO:building because C:\pyinstaller\python-tools\build\pyi.win32\python-tools\python-tools.exe.manifest changed2542INFO:building PKG out00-PKG.pkg6468INFO:checking EXE6478INFO:rebuilding out00-EXE.toc because python-tools.exe missing6478INFO:building EXE from out00-EXE.toc6488INFO:SRCPATH[('c:\\pyinstaller\\mytools\\ico.ico',None)]6488INFO:Updating icons from['c:\\pyinstaller\\mytools\\ico.ico']toc:\docume~1\user\locals~1\temp\tmpimsedq6498INFO:Writing RT_GROUP_ICON0resource with20bytes6498INFO:Writing RT_ICON1resource with2216bytes6528INFO:Appending archive to EXE C:\pyinstaller\python-tools\dist\python-tools.exe#好了,大功告成。