iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0

最開心又快速的打包方就是使用pyinstaller,如果是從官方網站直接下載及安裝python就不會遇到這些坑

pyinstaller 參數

--onefile           獨立執行檔
--onedir            做出的執行檔及附加檔案放在同一個目錄內
--tk                做出包含tk(tkinter)的檔案
--windowed          做出GUI程式(不含背景文字視窗畫面)
--console           做出Console 程式
--upx               使用upx 為程式加殼處理
--icon=<FILE.ICO>   添加程式圖標
--version=<FILE>    添加程式版本資料的資料文件
--name=<NAME>       指定專案名稱,若沒有指定,將使用程式名稱

快樂版

pyinstaller.py --onefile [source.py]

哭哭版

如果使用anaconda 3安裝後發現使用pyinstaller打包時會遇到套件遺失的路徑問題

問題: shiboken2 lib 遺失
解答: 直接在打包的參數中加入下面這行就行了

--paths "C:\Users\%UserName%\anaconda3\Lib\site-packages\shiboken2"

下圖是驗證這樣的寫法是可行的

結論:
anaconda 看似很方便,但其實裏頭的套件預設的放置位置是有別於python 官方下載的版本,所以還是建議使用官方的版本比較好

pyinstaller 還有一個超大的坑就是windows defender 會把打包出來的程式視為木馬程式或病毒,這是有辦法可以繞過防毒軟體的(筆者已經找到方法可以解),但可能就後續再分享了,因為那個原理實在太複雜,目前沒時間寫。

如果要上傳給雲端或給別人,建議使用winrar的壓縮方式,此舉可以繞過防毒軟體,不會將安裝檔判定為病毒。其他壓縮格式是會被判定成病毒的,執行的資料夾則是建議設定成白名單,這些都是比較簡單的做法。


上一篇
純手工打造UART版資料清洗工具之 PySide2 GUI 大補帖 - Part B
下一篇
好用的Decorator 如何在class中使用?
系列文
Python GUI 專案設計模式及好用的開發技巧31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言