別再問(wèn)怎么把Python打包成exe了!數(shù)據(jù)管道關(guān)注共 1840字,需瀏覽 4分鐘 ·2020-09-05 22:25 前言也許我們不一定是專業(yè)的程序員,但是我們?nèi)匀豢梢酝ㄟ^(guò)代碼提高我們的效率,盡量少加班,多陪陪媳婦(如果有)。再不行,讓代碼替我們干著重復(fù)的工作,我們有節(jié)省出來(lái)的時(shí)間打游戲不好嘛,是吧,哈哈哈。但是呢,我們開(kāi)發(fā)的腳本一般都會(huì)用到一些第三方包,可能別人也需要用到我們的腳本,如果我們將我們的xx.py文件發(fā)給他,他是不能直接用的,他還需要安裝python解釋器,甚至還要安裝我們用的那些第三方包,是不是有點(diǎn)小麻煩?但是我們都知道,PC是可以直接運(yùn)行exe文件的,這就為我們提供了一個(gè)便捷的方式。所以,從看了這個(gè)教程以后,這都將成為過(guò)去式,打成exe之后,分享即可用。PS: 如果打包為exe的話,版本盡量選擇python3.6+32位版本,因?yàn)閣in64位系統(tǒng)向下兼容32位程序,但是如果不考慮32位系統(tǒng)的話無(wú)所謂,直接python64位版本直接打包就可以,只是只能在win64位系統(tǒng)上跑。安裝pyinstaller首先安裝pyinstaller,使用安裝命令:pip3 install pyinstaller,如下圖所示。pyinstaller打包機(jī)制我們寫的python腳本是不能脫離python解釋器單獨(dú)運(yùn)行的,所以在打包的時(shí)候,至少會(huì)將python解釋器和腳本一起打包,同樣,為了打包的exe能正常運(yùn)行,會(huì)把我們所有安裝的第三方包一并打包到exe。即使我們的項(xiàng)目只使用的一個(gè)requests包,但是可能我們還安裝了其他n個(gè)包,但是他不管,因?yàn)榘桶挥幸蕾囮P(guān)系的。比如我們只裝了一個(gè)requests包,但是requests包會(huì)順帶裝了一些其他依賴的小包,所以為了安全,只能將所有第三方包+python解釋器一起打包。如下圖所示。藍(lán)色表示是安裝requests依賴的包,看到了吧!Pyinstaller打包exe這里呢,我就拿剛給同事寫辦公自動(dòng)化腳本示例一下。源碼示例效果,如下圖所示。1、我們來(lái)將這個(gè).py的文件打包成一個(gè)exe,我們直接cmd切換到這個(gè)腳本的目錄,執(zhí)行命令:pyinstaller-F setup.py,如下圖所示。ps: -F參數(shù)表示覆蓋打包,這樣在打包時(shí),不管我們打包幾次,都是最新的,這個(gè)記住就行,固定命令。2、執(zhí)行完畢之后,會(huì)生成幾個(gè)文件夾,如下圖所示。3、在dist里面呢,就有了一個(gè)exe程序,這個(gè)就是可執(zhí)行的exe程序,如下圖所示。4、我們把這個(gè)setup.exe拖到和setup.py平級(jí)的目錄,我們來(lái)運(yùn)行一下這個(gè),效果圖如下圖所示。5、這樣,我們就完成了一個(gè)打包工作,如果別人需要,即使沒(méi)有python環(huán)境,他依然可以運(yùn)行。6、接下來(lái)我們?cè)賮?lái)打包一個(gè)帶界面的,這里我用pyqt5寫了一個(gè)最簡(jiǎn)單的框架,看一下打包成exe是否能運(yùn)行成功,效果圖如下圖所示。我們可以看到,后面有一個(gè)黑洞洞的窗口,這就有點(diǎn)尷尬了,所以,我們的打包命令也要變一下。7、執(zhí)行 pyinstaller -F -wsetup.py 多加-w以后,就不會(huì)顯示黑洞洞的控制臺(tái)了,這里就不做演示啦!8、但是我們打包的exe,我們的圖標(biāo)呀,實(shí)在是有點(diǎn)丑陋,默認(rèn)的,沒(méi)有一點(diǎn)自己的風(fēng)格,那么,我們應(yīng)該怎么改一下呢?執(zhí)行命令:pyinstaller -F -w-i wind.ico setup.py,如下圖所示。9、默認(rèn)打包圖片,如下圖所示。10、加上 -i 參數(shù)之后,如下圖所示,會(huì)形成一個(gè)類似風(fēng)力發(fā)電機(jī)的logo圖案。ps:程序路徑最好全部都是英文,否則可能會(huì)出現(xiàn)莫名其妙的問(wèn)題11、到此,我們能用到的pyton打包成exe命令都總結(jié)完了總結(jié)命令Pyinstaller -F setup.py 打包exePyinstaller -F -w setup.py 不帶控制臺(tái)的打包Pyinstaller -F -i xx.ico setup.py 打包指定exe圖標(biāo)打包平常我們只需要這三個(gè)就好了,足夠滿足所有需求了。結(jié)語(yǔ)到這之后呢,python打包成exe基本算是結(jié)束了,記得一定要把pip升級(jí)成最新版的pip在安裝pyinstaller哈。要不然可能會(huì)出現(xiàn)莫名奇妙的問(wèn)題。不信邪的小伙伴們可以自己試試看,多碰碰壁也是可以學(xué)到很多的。 瀏覽 62點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 別再問(wèn)我怎么Python打包成exe了!Python知識(shí)圈0別再問(wèn)我Python怎么打包成exe了!Python客棧0別再問(wèn)我怎么Python打包成exe了!裸睡的豬0別再問(wèn)我Python打包成exe了!(終極版)Python技術(shù)0別再問(wèn)我Python打包成exe了!(終極版)菜鳥(niǎo)學(xué)Python0別再問(wèn)我Python打包成exe了!(終極版)裸睡的豬0別再問(wèn)我Python打包成exe了!(終極版)接地氣學(xué)堂0Python打包成exe終極方案Python網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)挖掘0Python打包成exe終極方案python之禪0復(fù)制粘貼,快速將Python程序打包成exePython 碎片0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào)