pyinstaller


pyinstaller是一個非常簡單的打包python的py文件的庫。用起來就幾條命令就夠了,

官方文檔:pyinstaller

直接pip install pyinstaller 會下載到最新版的  3.3的pyinstaller,和之前版本的語法是不同的,這個版本直接cmd里輸入

pyinstaller  X:\XXX\XXX.py 就可以了  生成的文件就在c盤user\用戶名\dist 下,而用戶名文件下還有個build里面存放了她運行的中間文件,里面有個warn文件詳細記錄了打包的錯誤,雖然沒什么卵用,但至少可以拿來百度下騙騙自己。。。哈哈

有些生成的文件直接在當前.py目錄下,如圖,demo01在work_st文件夾下,執行pyinstaller  –F  G:\work_st\demo01.py

主要選項包括:

-F, –onefile 打包成一個exe文件。
-D, –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)。
-c, –console, –nowindowed 使用控制台,無界面(默認)
-w, –windowed, –noconsole 使用窗口,無控制台

-h, --help 顯示此幫助消息並退出
-v, --version 顯示程序版本信息並退出。
--distpathDIR 放置捆綁應用的位置(默認值:./ did)
--workpath WORKPATH
  在哪里放置所有臨時工作文件,。log,.pyz等(默認值:./ build)
-y, --noconfirm
  替換輸出目錄(默認值:SPECPATH / dist / SPECNAME)而不要求確認
--upx-dir UPX_DIR
  UPX實用程序的路徑(默認:搜索執行路徑)
-a, --ascii 不包括unicode編碼支持(默認值:如果可用,則包含)
--clean 在構建之前清理PyInstaller緩存並刪除臨時文件。
--log-level LEVEL
  構建時控制台消息中的詳細信息量。LEVEL可能是TRACE,DEBUG,INFO,WARN,ERROR,CRITICAL之一(默認值:INFO)。

 

就會在work_st下生成兩個文件夾。

在dist文件夾下就有demo01.exe可執行文件

 

另外說幾個非常重要的問題

1.命令使用pyinstaller和pyinstaller.exe結果都是一樣的

2.-w是不顯示命令窗口,  -i 圖標文件的路徑  這是改變圖標的,但是我發現只能改變任務欄里的和命令窗口的圖標,並不能改變exe文件的圖標。另外這些參數要加載pyinstaller和路徑中間。

3.有一些代碼需要調用一些圖片和資源文件的,這是不會自動導入的,需要你自己手動復制進去才行。不然exe文件運行時命令窗口會報錯找不到這個文件。

4.也是最坑的一點。就是當你使用錯誤的參數去打包或者打包到一半中斷,等等此類運行到一半沒了的情況。會導致你原來的py文件變成一個0KB的空文件。里面的代碼會全部消失!!!所以以后需要有個良好的習慣,就是復制一份代碼出來,用這個副本進行打包。並且參數出錯,或者打錯了導致失敗時,檢查下副本文件的py文件是否還存在再繼續重新打包,不然打出來的就是空的文件,自然一直閃退,因為壓根沒內容。

5.寫代碼的時候應當有個良好的習慣,用什么函數導什么函數,不要上來import整個庫,最后你會發現你一個100KB的代碼打包出來有500MB,全是庫,簡直無語

6.pygame代碼調試的時候要用quit()不然程序結束時會崩潰。但是直接運行py文件就不需要這個函數。這個我們之前的文章也提到過了。但是這里當我使用-w做成無窗口的程序后,一結束發現報錯,暫停后發現報的是找不到quit()函數。可見這個函數其實是一個很讓人無語的函數。一方面pygame官方網上說結束程序的時候需要加入這個函數。另一方面其實在正在運行時都不需要甚至會報錯。雖然也不影響運行,但是彈個窗口出來說 什么不fail to execute總是讓別人覺得你是個lowb。所以,調試的時候加一下,到時候execute的時候去掉。

查看詳細使用情況,請查看:Python-django-pyinstaller


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM