程式碼編寫完成,如何在沒有python環境的電腦上執行?編寫了一個GUI程式,如何把檔案打包好,發給別人直接使用?其實最簡單的辦法就是把。py原始檔,打包成可執行程式設計師exe檔案,別人直接雙擊exe檔案就可以運行了。
python實現打包exe有很多方案,主要有py2exe、cxfreeze、PyInstaller三種,py2exe和cxfreeze的安裝過程比較麻煩,且對高版本python支援不好,雖然pyinstaller打包後文件相對較大,但是其安裝的簡單性和易用性得到廣大Python使用者的青睞,今天就介紹pyinstaller的使用。
pyinstaller
安裝
pip install -i https://pypi。tuna。tsinghua。edu。cn/simple pyinstaller
** 官方文件:**https://pyinstaller。readthedocs。io。
常用引數
-h 檢視幫助-w 忽略控制檯,打包gui軟體時使用-F dist目錄中只生成一個exe檔案-p 表示你自己定義需要載入的類庫的路徑-D 建立dist目錄,裡面包含exe以及其他一些依賴性檔案(預設,可不新增)-i 指定打包程式使用的圖示檔案
命令使用:
使用cmd進入到專案資料夾,執行如下命令:
pyinstaller -i ico。png -F -w demo。py
打包案例
可以使用自己的編寫的互動python打包,這裡使用pysimplegui編寫的檔案重新命名程式舉例,具體程式碼,看看文末連結。
image-20210422143005582
image-20210422152002715
兩種打包方式
1。 資料夾模式onedir
預設方式,使用命令:
pyinstaller fileren。py
執行完命令後,在專案資料夾下多出了三個檔案,
build
,
dist
和
fileren。spec
、
__pycache__
。
build
資料夾用於儲存日誌檔案。
dist
資料夾儲存可執行檔案即相關依賴。
__pycache__
資料夾裡是
Python
版本資訊。
fileren。spec
打包的配置檔案,可以配置依賴資源。
除了
dist
資料夾,其它都可以刪除,沒什麼用。
這種模式下,需要把整個dist資料夾發給別人才能執行。
image-20210422154003332
2。單檔案模式onefile
加上-F引數,全部的依賴檔案都會被打包到exe檔案中,在dist資料夾中只有一個可執行檔案,
把這個可執行檔案發給別人就可以直接運行了。
pyinstaller -w -F fileren。py
image-20210422161957815
預設的應用圖示,有點醜,介紹一個非常實用的圖示網站,找一個好看點的圖示。
https://www。easyicon。net/
image-20210422170829472
然後加上-i引數,重新打包:
pyinstaller -F -w -i folder。ico fileren。py
image-20210422163751316
注意事項
1.
有時候,除了程式碼本身,還包括一些外部資原始檔,如圖片、配置檔案等。可以修改第一次打包完成的配置檔案XXX。spec配置檔案,然後執行命令
pyinstaller xxx。spec
,便可按照spec檔案中的新配置重新打包。
image-20210422164539331
binaries元組,二進位制檔案(如。exe/。dll/。so等),比如binaries=[(‘ci64。dll’,‘。’),(‘ABDLL64。dll’,‘。’)]
datas元組,非二進位制檔案(如圖片檔案、文字檔案等),例如:datas=[(‘icons’,‘icons’)]
2.
打包的檔案很大,如何解決,最好的辦法建立虛擬環境,比如:
pip install virtualenvcd F:\envvirtualenv env01 #建立env01的虛擬環境cd F:\env\env\Scriptsactivate #啟用虛擬環境
pip安裝需要的依賴,在虛擬環境中執行透過。 把專案複製到虛擬環境執行命令:
3.
打包和執行exe檔案的過程中,需要關閉防毒軟體。
4.
win10 64位打包成exe檔案後,不能在32位系統執行,安裝32位python打包才可以。
原創不易,覺得有用,記得點個贊。