安裝pyinstaller
安裝方法
方法一:使用pip install pyinstaller捆探,也可以參考: python如何安裝第三方包垄惧,
方法二:如果是下載github上的包之后手動(dòng)安裝,那么步驟是
打開(kāi)cmd涮俄,切到pyinstaller解壓包目錄摆舟,我直接放在c盤(pán)目錄下了,所以我的操作是
cd C:\pyinstaller-develop
安裝pyinstaller噪服,我的操作是
進(jìn)目錄后輸入python setup.py install
包下載
親測(cè)可用:Pyinstaller下載地址毡泻,GitHub版本,親測(cè)可用
備用地址不:Pyinstaller官網(wǎng)下載地址粘优,我沒(méi)試過(guò)仇味,應(yīng)該也行
程序打包
先將需要打包的程序呻顽,我用自己的Tkint.py文件(自己python文件名字自己修改),把它復(fù)制到步驟1的目錄下丹墨,也就是上面的C:\pyinstaller-develop然后使用命令:pyinstaller -F Tkint.py(建議使用)
注意:如果運(yùn)行的是gui類(lèi)型程序廊遍,你不需要彈出命令窗口,你可以采用:pyinstaller -F -w文件名.py?
之后你的命令窗就會(huì)跑半分鐘左右贩挣,跑完之后是這樣的喉前;
打包好的Tkint.exe已經(jīng)在該目錄下的dist文件夾中了。如果成功王财,應(yīng)該多了這兩個(gè)文件夾
dist里面是這樣的?
然后你就可以拿去給別的機(jī)器測(cè)試你的程序啦卵迂,哈哈哈哈哈
注意: 在同學(xué)win8/win10,64位機(jī)器上可以運(yùn)行,win7 x64和其余所有32位親測(cè)失敗绒净,會(huì)提示不兼容见咒,所以說(shuō),如果要32/64通吃挂疆,就要在python 32位環(huán)境下(不是win32位)編譯打包exe改览,才能在32/64成功。
BTW
但是缤言,如果你使用pyinstaller -F -w文件名.py在別的電腦運(yùn)行你的exe文件時(shí)候你看不到命令窗口宝当,你會(huì)認(rèn)為程序沒(méi)有運(yùn)行,打包后的exe比較大胆萧,以我的Tkint.py來(lái)說(shuō)庆揩,160行的程序,打包后61MB鸳碧,額盾鳞,我直接插在U盤(pán)上在別的電腦運(yùn)行,大概需要半分鐘左右才能跑起來(lái)瞻离,所以請(qǐng)慢慢等待腾仅。。套利。推励。如果你還要改圖標(biāo),創(chuàng)建目錄啥的肉迫,請(qǐng)使用pyinstaller -h來(lái)查看參數(shù)
如果覺(jué)得內(nèi)容不夠細(xì)致,可以參考
用PyInstaller將python轉(zhuǎn)成可執(zhí)行文件exe筆記
或者
用PyInstaller把Python代碼打包成單個(gè)獨(dú)立的exe可執(zhí)行文件
補(bǔ)充
2016.7.7補(bǔ)坑: 基于python的參考文獻(xiàn)生成器beta已完成验辞,歡迎下載和使用免費(fèi)下載基于python的文獻(xiàn)生成器.exe
2016.7.8補(bǔ)充: 利用Pyinstaller編譯關(guān)聯(lián)文件成exe,只要輸入時(shí)候?qū)懗蓀yinstaller -F main.py related.py即可,其中main為主函數(shù)喊衫,其中有import related.py的函數(shù)跌造,只要把重要的放前面就好啦,然后最后的exe文件名會(huì)以第一個(gè)命名,也就是最后形成一個(gè)main.exe就是醬紫壳贪。修改spec文件陵珍,重新加上參數(shù)再編譯。按照正常步驟做過(guò)之后违施,在目錄中還會(huì)有一個(gè)spec文件互纯,用編輯器打開(kāi),之后修改參數(shù)磕蒲,保存后留潦,在原來(lái)操作的cmd上寫(xiě)入:pyinstaller main.spec即可,這個(gè)是我在gui圖像生成exe格式時(shí)候辣往,圖片無(wú)法打包查閱到的兔院,需要單獨(dú)添加
Mac下發(fā)布應(yīng)用
安裝py2app
pip install py2app
或者手動(dòng)下載安裝點(diǎn)這里
打包程序
首先在桌面新建一個(gè)文件夾,我這里名字為transapp排吴,然后把要打包的程序放在里面秆乳,我這里要打包的是translate.py文件懦鼠,自己的文件夾和文件名字自己響應(yīng)替換
進(jìn)入終端钻哩,切路徑至該文件夾下
cd ~/Desktop/transapp
開(kāi)始產(chǎn)生初始化文件
py2applet --make-setup translate.py
保險(xiǎn)起見(jiàn),清除以前產(chǎn)生的build和dist文件夾肛冶,第一次操作這兩個(gè)文件夾是沒(méi)有的
rm -rf build dist
開(kāi)始打包應(yīng)用
python setup.py py2app
這時(shí)候會(huì)開(kāi)始執(zhí)行打包過(guò)程街氢,最后大概是這樣的
...
Modules not found (conditional imports):
* _md5 (hashlib)
* _sha (hashlib)
* _sha256 (hashlib)
* _sha512 (hashlib)
* com (pkg_resources._vendor.appdirs)
* com.sun.jna (pkg_resources._vendor.appdirs)
* com.sun.jna.platform (pkg_resources._vendor.appdirs)
* riscospath (os)
* win32com (pkg_resources._vendor.appdirs)
* win32com.shell (pkg_resources._vendor.appdirs)
Done!
找到自己的文件夾,然后里面應(yīng)該有dist文件夾睦袖,打開(kāi)后里面有個(gè)app珊肃,雙擊即可。
測(cè)試時(shí)候, py2app版本0.14馅笙,macos版本10.12.14伦乔,測(cè)試通過(guò),最后效果圖如下所示
更新
2016.07.06 更新 win下發(fā)布應(yīng)用
2017.07.26 跟新 mac下發(fā)布應(yīng)用