欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python打包Exe程序需要避的坑有哪些

Python打包Exe程序需要避的坑有哪些,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、海拉爾網(wǎng)絡(luò)推廣、小程序定制開發(fā)、海拉爾網(wǎng)絡(luò)營銷、海拉爾企業(yè)策劃、海拉爾品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供海拉爾建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.chinadenli.net

寫完一個(gè)python程序之后,如何才能快速地將代碼分享給別人,尤其對(duì)于初學(xué)者來說,能把自己的代碼包裝成一個(gè)exe程序并傳遞到別人電腦上運(yùn)行,那是一件非常有成就感的事。好在python自帶簡易打包程序,讓很多人能過一把當(dāng)程序員的癮。目前流行的打包庫就有py2exe、pyinstaller和cx_Freeze。

但python的運(yùn)行環(huán)境復(fù)雜,編寫的程序往往是借助了很多附加的功能庫來實(shí)現(xiàn),對(duì)簡單的打包會(huì)造成一定困難。本人也是在經(jīng)歷了多次的打包失敗和成功的經(jīng)歷之后,覺得pyinstaller的成功率最高,所以有必要針對(duì)pyinstaller寫一篇避坑指南。

一、安裝

使用python的pip安裝,在cmd窗口,使用pip install pyinstaller,即安裝完成。然后配置好環(huán)境變量。

二、使用

例如在程序6.py所在文件夾打開cmd窗口。一般輸入pyintaller -F  **.py(命令符的具體含義在下文中解釋),回車即開始打包。順利的話,會(huì)出現(xiàn)打包成功的反饋,如下圖,這時(shí),就說明文件已經(jīng)打包完成了。dist文件夾里面就放著打包完的exe程序,使用時(shí)剪切出來就行了。如果運(yùn)氣好或者本身程序比較簡單,那這個(gè)exe就能在任何電腦運(yùn)行了。

Python打包Exe程序需要避的坑有哪些

但往往沒這么容易,pyinstaller在使用中有很多坑,打包的開始,也是修補(bǔ)的開始。

三、遇坑填坑

1.文件路徑中不能出現(xiàn)中文

否則會(huì)在打包過程中直接出現(xiàn)如下報(bào)錯(cuò)。這時(shí)只要把所在文件夾和程序名字改成英文或者數(shù)字重新打包即可。可以打包完再將exe的名字改回來。

Python打包Exe程序需要避的坑有哪些

2.缺少導(dǎo)入hook文件

有時(shí)即使打包成功了,在運(yùn)行exe時(shí)候,還是會(huì)有報(bào)錯(cuò)并閃退。

如果報(bào)錯(cuò)為:FileNotFoundError: [Errno 2] No such file or directory:……

那是缺少hook文件,要在pyinstaller的安裝路徑里的hook增加一個(gè)自定義的hook。hook文件的命名規(guī)范為:  hook-【庫名】.py。例如以我在打包程序中用了結(jié)巴分詞這個(gè)功能庫為例,那我要建立一個(gè)hook-jieba.py,并寫入:

from PyInstaller.utils.hooks import collect_data_files datas = collect_data_files("jieba")

然后放到~\Lib\site-packages\PyInstaller\hooks中去,再次運(yùn)行pyinstaller打包既可解決該問題。

3.缺少導(dǎo)入功能庫模塊

如果報(bào)錯(cuò)為 no moduler named  “pandas._libs.skiplist”,那就要手動(dòng)import庫,解決方法打開生成的spec文件,找到  hiddenimports=[],加上要添加的庫,將其改動(dòng)如下,hiddenimports=["pandas._libs.skiplist"],然后刪除dist里面的exe文件,重新用spec文件打包,pyinstaller  **.spec。即可解決該問題。

Python打包Exe程序需要避的坑有哪些

四、花式打包

涉及到打包的幾個(gè)重要參數(shù)如下。

  • -F,將所有內(nèi)容打包到一個(gè)exe中,方便發(fā)送,一般都使用這個(gè)參數(shù)。

  • -c,此為windows系統(tǒng)的默認(rèn)選項(xiàng),使用這個(gè)參數(shù),運(yùn)行時(shí)會(huì)有一個(gè)黑窗控制臺(tái)。

  • -w,使用這個(gè)參數(shù),運(yùn)行時(shí)不會(huì)出現(xiàn)黑窗控制臺(tái)。

  • -i 使用這個(gè)參數(shù)用于生成自定義圖標(biāo)的exe,在這后面要加上ico圖片的地址。例如,pyinstaller -i D:\icons\demo.ico  **.py

將程序打包成exe發(fā)送出去或者供用戶下載,是一個(gè)比較傳統(tǒng)的傳播方式,并且比較笨重,其實(shí)用簡單的H5或者小程序就能實(shí)現(xiàn)一樣的效果,對(duì)用戶而言也更方便,也是朝著輕應(yīng)用的方向發(fā)展。此外,對(duì)于專業(yè)用戶還能通過github和api等方式傳播。隨著網(wǎng)絡(luò)觀念的深入人心和5G時(shí)代到來,相信有更好的方式能更安全、快捷、私密地將工具的功能傳遞給所需要的用戶。

看完上述內(nèi)容,你們掌握Python打包Exe程序需要避的坑有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享文章:Python打包Exe程序需要避的坑有哪些
標(biāo)題URL:http://www.chinadenli.net/article32/jdjgpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器響應(yīng)式網(wǎng)站定制網(wǎng)站網(wǎng)站設(shè)計(jì)公司網(wǎng)站制作App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)