pyinstaller用法總結

2021-09-29 22:51:52 字數 2288 閱讀 2341

最近利用tkinter+python+pyinstaller實現了小工具的專案,在此記錄下pyinstaller相關引數以及爬過的坑。

一、pyinstaller相關引數

-f, –onefile    打包乙個單個檔案,如果你的**都寫在乙個.py檔案的話,可以用這個,如果是多個.py檔案就別用

-d, –onedir    打包多個檔案,在dist中生成很多依賴檔案,適合以框架形式編寫工具**,我個人比較推薦這樣,**易於維護

-k, –tk    在部署時包含 tcl/tk

-a, –ascii    不包含編碼.在支援unicode的python版本上預設包含所有的編碼.

-d, –debug    產生debug版本的可執行檔案

-w,–windowed,–noconsole    使用windows子系統執行.當程式啟動的時候不會開啟命令列(只對windows有效)

-c,–nowindowed,–console    

使用控制台子系統執行(預設)(只對windows有效)

pyinstaller -c  ***x.py

pyinstaller ***x.py --console

-s,–strip    可執行檔案和共享庫將run through strip.注意cygwin的strip往往使普通的win32 dll無法使用.

-x, –upx    如果有upx安裝(執行configure.py時檢測),會壓縮執行檔案(windows系統中的dll也會)(參見note)

-o dir, –out=dir    指定spec檔案的生成目錄,如果沒有指定,而且當前目錄是pyinstaller的根目錄,會自動建立乙個用於輸出(spec和生成的可執行檔案)的目錄.如果沒有指定,而當前目錄不是pyinstaller的根目錄,則會輸出到當前的目錄下.

-p dir, –path=dir    設定匯入路徑(和使用pythonpath效果相似).可以用路徑分割符(windows使用分號,linux使用冒號)分割,指定多個目錄.也可以使用多個-p引數來設定多個匯入路徑,讓pyinstaller自己去找程式需要的資源

–icon=

將file.ico新增為可執行檔案的資源(只對windows系統有效),改變程式的圖示  pyinstaller -i  ico路徑 ***xx.py

–icon=將file.exe的第n個圖示新增為可執行檔案的資源(只對windows系統有效)

-v file, –version=file    將verfile作為可執行檔案的版本資源(只對windows系統有效)

-n name, –name=name    可選的專案(產生的spec的)名字.如果省略,第乙個指令碼的主檔名將作為spec的名字

二、pyinstaller爬坑總結

第一次玩pyinstaller,遇到了不少坑,在這裡總結一下,以免日後再次掉坑里。

1、先從這次寫的工具再說吧,寫這個工具的初衷是由於自己手工造資料檔案花了很長時間,然後就想著寫個工具來解決這個問題(也是想鍛鍊下自己的**能力,哈哈哈),利用下班晚上以及週末寫了一周大概寫出來了。

這個工具是個掃碼支付檔案生成工具,主要是解決手工造檔案資料,有兩個功能,一是基礎掃碼檔案生成功能、二是大批量掃碼檔案生成功能,同時加上了使用者auth控制。

在這裡提醒大家,在**裡面盡量不要用import,能from.....import....就盡量用這個,因為如果是import的話,在打包的時候,會將整個包都打包到exe裡面,沒有意義的增大了工具的大小!

大概框架如下:

2、gui開發完畢後,開始研究pyinstaller,也翻閱了論壇關於pyinstaller的相關用法,這裡總結下我的工具的打包步驟

2.2、在**的路徑下進行cmd,就直接跳轉到該路徑的cmd介面,切記路徑中不要有中文

2.3、先用後台模式生成工具exe,命令為pyinstaller ***x.py檔案,主要目的是為了看報錯資訊,解決了報錯後,再生成完整版的工具

tip:由於我的**是存在依賴的,即多檔案的,而非所有**都在乙個檔案中的,所以我在這裡沒有使用-f,剛開始玩的時候不知道,老是用了-f生成了單檔案的,沒有生成依賴,老是不成功,各位朋友切記!

下圖為命令生成的日誌,紅框部分則為exe工具生成的路徑,如果在日誌中只有info資訊的話,說明打包過程沒有問題

2.4、找到生成的exe檔案,執行exe(生成的exe檔案都會在dist目錄下)

2.5、再次執行exe,此時執行成功,說明工具打包成功

2.6、重新生成exe工具,去掉後台模式以及更換掉圖示

再將需要的資源和**檔案放到dist下的專案資料夾中

2.7、執行exe,能夠開啟則表示pyinstaller打包exe成功

pyinstaller 打包總結

pyinstaller 打包過程總結 安裝 pyinstaller 打包工具 pip3 install pyinstallerpyinstaller 打包命令不熟悉的小夥伴可點選這裡檢視喲 備註 以下涉及到的檔案名字main.py,請替換成自己的檔名 執行打包命令生成單獨的 exe 程式 pyins...

pyinstaller 打包步驟總結

1.安裝對應版本的pyinstaller 2.在打包之前,將需要import的庫從site package中copy出來放在要打包的同個檔案目錄下,有些庫有依賴庫,需要將依賴庫也一同copy到同個目錄下 3.開啟cmd,進入要打包的檔案目錄中執行 pyinstaller f myfile.py 4....

pyinstaller遇到的問題總結

解決步驟 1 pyinstaller f py 這一步肯定會報上述錯誤導致失敗,但是會產生乙個 spec檔案 2 在 spec檔案中增加兩行 新增在原檔案第二行 import sys sys.setrecursionlimit 5000 3 pyinstaller spec 打包成功。解決方法 在你...