最近公司讓作了一個小工具,使用python寫的,寫完以後要求能放在其它電腦上運行,因而就開始尋找方案;
按網上的說法 py2exe已經好久沒更新了,資料也很少;
因而就採用pyinstaller來生成exe程序;html
環境python
pyintaller 正式版 支持2.7及3.3-3.5的python版本 工具
pyinstaller 開發版 支持2.7及3.3-3.6版本 字體
我使用的python是3.6.1的,直接使用pip install pyinstaller下載來的會報out of range 的錯誤,須要安裝開發版;網站
pyinstaller安裝spa
3.6以前的版本 : pip install pyinstaller
3.6+的版本: 命令行
pyinstaller [options] XXX.py
在這一步裏經常使用的參數以下: -c 命令行程序 -w GUI程序 –icon="path" 生成exe的圖標 -F 生成單個EXE文件
默認狀況下生成的是單個目錄,裏面包含一個可執行文件及相關依賴,是分開的;若是使用-F或 –onefile時,將會把全部依賴打包時exe文件中
默認狀況下均會包含有命令行,好處是在出錯的時候會告訴你哪裏出錯了,GUI程序在調試完成後能夠指定 -w 的參數取消命令行提示
默認狀況下的快捷方式圖標比較醜,本身選擇一個吧
默唸狀況下生成的是單目錄,有利於更新,但看起來比較亂,請自行選擇吧調試
修改XXX.spec
若是你沒有依賴外部圖片、字體等資源時,能夠跳過該步驟;
加入依賴的外部資源,下面的例子就是加入外部字體文件(1.ttf和7.ttf):code
a =Analysis(['window.py'], pathex=['E:\\pycharm Space\\pyStudy\\window'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher) a.datas +=[('1.ttf','D:\\fonts\\1.ttf','DATA'),('7.ttf','D:\\fonts\\7.ttf','DATA')]
生成exe文件
執行 pyinstaller XXX.spec 就能夠獲得可執行文件了;
若是是單文件模式:生成文件位置爲: dist/XXX.exe
若是是單目錄模式: 生成文件位置爲: dist/XXX/XXX.exehtm
若是在執行exe文件出錯時,請使用命令行執行,會提示異常信息的~~~ 若是沒有異常,可能緣由是在打包時加了 -w 的參數強制使用了GUI模式,把這個參數去掉再試一次