python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了
大家好,我是今天的值班小編,不知道朋友們開工了沒有,小編的公司已經(jīng)遠(yuǎn)程辦公好幾天了。今天由于寫游戲教程的那位小編棄坑不更新文章了,只好由本小編繼續(xù)來解決粉絲朋友們的問題。 如果朋友們在使用python的過程中遇到了任何問題,都可以私信小編哦,小編會抽出時間來幫您解決問題的。
永遠(yuǎn)都不要放棄
問題背景
一提起如何運行Python,朋友們的第一印象肯定是命令行那個黑色的dos/linux命令行窗口了。由于Python本身是腳本語言,需要解釋器來執(zhí)行,所以默認(rèn)情況就是這樣的。
這樣在開發(fā)階段其實蠻好的,但是到了發(fā)布階段就遇到了大麻煩:很有可能對方的windows計算機(jī)里面沒有安裝python解釋器,導(dǎo)致您辛苦熬夜白了頭開發(fā)的Python腳本無法成功部署運行,到了這個階段,可以說是萬事俱備只欠東風(fēng)了。
為了解決最后一步的這個問題,國外會念經(jīng)的大神程序員們想出了一個絕招:把Python代碼打包成exe可執(zhí)行文件。
大神
為什么要生成exe可執(zhí)行文件
首先,剛才已經(jīng)說了,在機(jī)器上不需要安裝對應(yīng)的Python解釋器,更不需要pip安裝依賴的包。
其次,打包成可執(zhí)行文件之后,別人就看不到你的Python代碼啦,這就可以避免你的代碼被人抄襲或者惡意修改,在一定程度上保護(hù)了你的代碼。
最后,從用戶的角度來看,用戶只要下載了exe文件,雙擊就可以運行了,也不需要安裝任何東西。您的代碼變成了真正的“綠色軟件”,給用戶帶來了極大的方便。
方便,時間就是金錢
安裝打包工具
業(yè)界最常用的Python腳本打包工具就是pyinstaller了,沒有之一。通過pip可以很方便地安裝成功:pip install pyinstaller。如果您的網(wǎng)速太慢,可以嘗試使用國內(nèi)的源。
安裝之后,在cmd命令行里面輸入pyinstaller -v并回車,如果能夠看到其版本號,就說明安裝成功了。
小編這次安裝的時候,版本號是3.6,應(yīng)該是最新版了。
安裝完畢
環(huán)境安裝完畢,下面小編就來解決粉絲朋友們私信發(fā)過來的關(guān)于pyinstaller使用過程中遇到的幾個問題。
第一個問題:exe文件圖標(biāo)怎么自定義呀?
首先,您需要準(zhǔn)備一個ico格式的圖標(biāo),或者是準(zhǔn)備一個jpg/png圖片也行,網(wǎng)上有很多工具可以把它轉(zhuǎn)化成ico格式的文件。需要注意的是,圖片里面的元素不要太復(fù)雜,不然變成ico文件之后,圖片整體會縮小很多倍,圖片內(nèi)的很多元素就看不清楚了。
其次,在打包的時候,加上參數(shù) -i ico文件名 ,這樣就可以使得打包出來的exe文件使用您自定義的ico圖標(biāo)了。
圖標(biāo)
第二個問題:怎樣去掉exe運行時彈出的dos命令行黑色窗口?
默認(rèn)情況下,打包出來的exe文件雙擊運行之后,會彈出一個dos命令行黑色窗口,這種行為使得這個exe文件看起來很不專業(yè),畢竟我們?nèi)粘J褂玫膃xe文件不會出這種妖蛾子。
解決辦法也很簡單,在打包的時候,加上參數(shù) --noconsole
第三個問題:為什么加了noconsole之后,還會有dos窗口一閃而過?
這個問題就很玄學(xué)了,需要針對具體的case來進(jìn)行分析。
這位粉絲朋友的代碼,小編仔細(xì)看了一下,發(fā)現(xiàn)里面有import os和os.system()執(zhí)行外部程序,應(yīng)該就是這個原因了。
把import os改成import subprocess,再把os.system改成subprocess.run,問題解決!
第四個問題:為什么我打包出來的exe文件有好幾百M?
一般來說,python代碼打包出來的exe文件有十幾甚至幾十M都是正常的。這位朋友打包出來的exe文件有好幾百M,實在是出乎小編的意料之外。 后來小編仔細(xì)閱讀了這位朋友的python代碼,發(fā)現(xiàn)他import了非常多的庫,這就基本上無解了,除非用c++改寫一下?
不知道朋友們有沒有好的辦法,可以在留言區(qū)告訴小編哦。
后記
今天的文章就到這里,在此文中,小編幫粉絲朋友們解決了三個使用pyinstaller過程中遇到的問題(第四個問題并沒有解決),貢獻(xiàn)實在不小,不知道能不能得到老板的賞識而升職加薪迎娶白富美呢。
總結(jié)
以上是生活随笔為你收集整理的python打包成exe_Python打包成exe时,再犯这几个错误就说不过去了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大于小于优化_架构 - 以MySQL为例
- 下一篇: gin ajax 获取请求参数,go的g