溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pyinstaller參數的示例分析

發(fā)布時間:2021-08-25 09:40:13 來源:億速云 閱讀:135 作者:小新 欄目:開發(fā)技術

小編給大家分享一下pyinstaller參數的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、pyinstaller相關參數

-F, –onefile打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
-D, –onedir打包多個文件,在dist中生成很多依賴文件,適合以框架形式編寫工具代碼,我個人比較推薦這樣,代碼易于維護
-K, –tk在部署時包含 TCL/TK
-a, –ascii不包含編碼.在支持Unicode的python版本上默認包含所有的編碼.
-d, –debug產生debug版本的可執(zhí)行文件
-w,–windowed,–noconsole使用Windows子系統執(zhí)行.當程序啟動的時候不會打開命令行(只對Windows有效)
-c,–nowindowed,–console

使用控制臺子系統執(zhí)行(默認)(只對Windows有效)

pyinstaller -c xxxx.py

pyinstaller xxxx.py --console

-s,–strip可執(zhí)行文件和共享庫將run through strip.注意Cygwin的strip往往使普通的win32 Dll無法使用.
-X, –upx如果有UPX安裝(執(zhí)行Configure.py時檢測),會壓縮執(zhí)行文件(Windows系統中的DLL也會)(參見note)
-o DIR, –out=DIR指定spec文件的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動創(chuàng)建一個用于輸出(spec和生成的可執(zhí)行文件)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下.
-p DIR, –path=DIR設置導入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p參數來設置多個導入路徑,讓pyinstaller自己去找程序需要的資源
–icon=<FILE.ICO>

將file.ico添加為可執(zhí)行文件的資源(只對Windows系統有效),改變程序的圖標 pyinstaller -i ico路徑 xxxxx.py

–icon=<FILE.EXE,N>將file.exe的第n個圖標添加為可執(zhí)行文件的資源(只對Windows系統有效)
-v FILE, –version=FILE將verfile作為可執(zhí)行文件的版本資源(只對Windows系統有效)
-n NAME, –name=NAME可選的項目(產生的spec的)名字.如果省略,第一個腳本的主文件名將作為spec的名字

二、pyinstaller爬坑總結

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

1、先從這次寫的工具再說吧,寫這個工具的初衷是由于自己手工造數據文件花了很長時間,然后就想著寫個工具來解決這個問題(也是想鍛煉下自己的代碼能力,哈哈哈),利用下班晚上以及周末寫了一周大概寫出來了。

這個工具是個掃碼支付文件生成工具,主要是解決手工造文件數據,有兩個功能,一是基礎掃碼文件生成功能、二是大批量掃碼文件生成功能,同時加上了用戶auth控制。

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

大概框架如下:

pyinstaller參數的示例分析

2、Gui開發(fā)完畢后,開始研究pyinstaller,也翻閱了論壇關于pyinstaller的相關用法,這里總結下我的工具的打包步驟

2.1、先下載pyinstaller,我比較懶,就直接用pip install pyinstaller,等待自動安裝

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

pyinstaller參數的示例分析

2.3、先用后臺模式生成工具exe,命令為pyinstaller xxxx.py文件,主要目的是為了看報錯信息,解決了報錯后,再生成完整版的工具

tip:由于我的代碼是存在依賴的,即多文件的,而非所有代碼都在一個文件中的,所以我在這里沒有使用-F,剛開始玩的時候不知道,老是用了-F生成了單文件的,沒有生成依賴,老是不成功,各位朋友切記!

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

pyinstaller參數的示例分析

pyinstaller參數的示例分析

2.4、找到生成的exe文件,運行exe(生成的exe文件都會在dist目錄下)

pyinstaller參數的示例分析

運行時,我遇到了以下的報錯信息,是在dist找到相關的圖片資源,所以需要把所有關于工具所需的資源(包含圖片以及依賴的.py文件都放進dist下的項目目錄中)

pyinstaller參數的示例分析

pyinstaller參數的示例分析

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

pyinstaller參數的示例分析

2.6、重新生成exe工具,去掉后臺模式以及更換掉圖標

給大家推薦一個圖標獲取地址,里面ico蠻多的:easyicon

下載了自己心儀的ico后,用-i+ico路徑來替換默認ico,這次重新生成exe工具,命令為pyinstaller -i ico路徑 -w xxxx.py

pyinstaller參數的示例分析

再將需要的圖片資源和代碼文件放到dist下的項目文件夾中

pyinstaller參數的示例分析

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

pyinstaller參數的示例分析

以上是“pyinstaller參數的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI