Python打包Exe程序需要避的坑有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于網站制作、成都網站設計、海拉爾網絡推廣、小程序定制開發(fā)、海拉爾網絡營銷、海拉爾企業(yè)策劃、海拉爾品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供海拉爾建站搭建服務,24小時服務熱線:18980820575,官方網址:www.rwnh.cn
寫完一個python程序之后,如何才能快速地將代碼分享給別人,尤其對于初學者來說,能把自己的代碼包裝成一個exe程序并傳遞到別人電腦上運行,那是一件非常有成就感的事。好在python自帶簡易打包程序,讓很多人能過一把當程序員的癮。目前流行的打包庫就有py2exe、pyinstaller和cx_Freeze。
但python的運行環(huán)境復雜,編寫的程序往往是借助了很多附加的功能庫來實現(xiàn),對簡單的打包會造成一定困難。本人也是在經歷了多次的打包失敗和成功的經歷之后,覺得pyinstaller的成功率最高,所以有必要針對pyinstaller寫一篇避坑指南。
使用python的pip安裝,在cmd窗口,使用pip install pyinstaller,即安裝完成。然后配置好環(huán)境變量。
例如在程序6.py所在文件夾打開cmd窗口。一般輸入pyintaller -F **.py(命令符的具體含義在下文中解釋),回車即開始打包。順利的話,會出現(xiàn)打包成功的反饋,如下圖,這時,就說明文件已經打包完成了。dist文件夾里面就放著打包完的exe程序,使用時剪切出來就行了。如果運氣好或者本身程序比較簡單,那這個exe就能在任何電腦運行了。
但往往沒這么容易,pyinstaller在使用中有很多坑,打包的開始,也是修補的開始。
1.文件路徑中不能出現(xiàn)中文
否則會在打包過程中直接出現(xiàn)如下報錯。這時只要把所在文件夾和程序名字改成英文或者數字重新打包即可??梢源虬暝賹xe的名字改回來。
2.缺少導入hook文件
有時即使打包成功了,在運行exe時候,還是會有報錯并閃退。
如果報錯為:FileNotFoundError: [Errno 2] No such file or directory:……
那是缺少hook文件,要在pyinstaller的安裝路徑里的hook增加一個自定義的hook。hook文件的命名規(guī)范為: hook-【庫名】.py。例如以我在打包程序中用了結巴分詞這個功能庫為例,那我要建立一個hook-jieba.py,并寫入:
from PyInstaller.utils.hooks import collect_data_files datas = collect_data_files("jieba")
然后放到~\Lib\site-packages\PyInstaller\hooks中去,再次運行pyinstaller打包既可解決該問題。
3.缺少導入功能庫模塊
如果報錯為 no moduler named “pandas._libs.skiplist”,那就要手動import庫,解決方法打開生成的spec文件,找到 hiddenimports=[],加上要添加的庫,將其改動如下,hiddenimports=["pandas._libs.skiplist"],然后刪除dist里面的exe文件,重新用spec文件打包,pyinstaller **.spec。即可解決該問題。
涉及到打包的幾個重要參數如下。
-F,將所有內容打包到一個exe中,方便發(fā)送,一般都使用這個參數。
-c,此為windows系統(tǒng)的默認選項,使用這個參數,運行時會有一個黑窗控制臺。
-w,使用這個參數,運行時不會出現(xiàn)黑窗控制臺。
-i 使用這個參數用于生成自定義圖標的exe,在這后面要加上ico圖片的地址。例如,pyinstaller -i D:\icons\demo.ico **.py
將程序打包成exe發(fā)送出去或者供用戶下載,是一個比較傳統(tǒng)的傳播方式,并且比較笨重,其實用簡單的H5或者小程序就能實現(xiàn)一樣的效果,對用戶而言也更方便,也是朝著輕應用的方向發(fā)展。此外,對于專業(yè)用戶還能通過github和api等方式傳播。隨著網絡觀念的深入人心和5G時代到來,相信有更好的方式能更安全、快捷、私密地將工具的功能傳遞給所需要的用戶。
看完上述內容,你們掌握Python打包Exe程序需要避的坑有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享文章:Python打包Exe程序需要避的坑有哪些
標題URL:http://www.rwnh.cn/article32/jdjgpc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、響應式網站、定制網站、網站設計公司、網站制作、App設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)