woff 發表於 2023-9-18 23:12:03

使用 PyInstaller 將 Python打包成 exe 或 sh 檔

利用Python寫了一個小腳本想要傳給使用Windows但沒有裝Python的朋友執行,這時候就可以利用將檔案包裝成exe檔案,讓沒有Python的朋友也可以執行。本篇將介紹利用套件「PyInstaller」製作exe檔。筆者環境目前為:Windows 10 (64位元)與Power Shell與Python3, PyCharm。
安裝方法#透過pip安裝pyinstaller
pip install pyinstaller#如果失敗可以使用以下的方法進行安裝
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz


[*]pyinstaller -h 來查看參數
[*]-F 打包成一個exe文件
[*]–icon=圖標路徑
[*]-w 使用視窗,無控制台
[*]-c 使用控制台,無視窗
[*]-D 創建一個目錄,包含exe以及其他一些依賴性文件



舉個例子如下圖所示,我們編寫一個輸出Hello,Pyladies!的Python程式,並利用input()使程式可以暫時停在輸出畫面。Windows使用者執行pyinstaller -F .\darknet.py
,會在命令框看到目前進度。mac 使用者則是執行 pyinstaller -F ./darknet.py
, 因為command line 是正斜線。

可以透過進度發現這個套件在執行命令之後:
[*]會先建立一個 hello.spec
[*]建立「build」 資料夾
[*]建立 log紀錄檔與工作檔案於資料夾 build 中
[*]建立 「dist 」資料夾
[*]建立執行檔(.exe)在 「dist」 資料夾

進入「dist」資料夾可看見執行檔。可執行程式,如圖所示。
何謂__pycache__ ?放編譯時需要的檔案用的檔案。當你在python中運行程序時,解釋器首先將其編譯為字節碼(這是一個過度簡化),並將其存儲在__pycache__文件夾中。編譯不出現的方法:利用python -B foo.py使__ pycache__資料夾不出現。

注意事項執行檔案可在win8/win10,64位元的電腦運行,但win7 x64和其餘所有32位失敗,會提示不兼容,若要能32位元與64位元皆可運行,就要在Python 32位元的環境下編譯PyInstaller打包exe,才能在32位元與64位元成功。
封裝成Linux sh 文件在Linux環境下,打包成Linux可執行程式(需要事先安裝好相關的依賴套件)
pyinstaller -F darknet.py
在目錄下的dist目錄下產生darknet

參考文章
https://medium.com/pyladies-taiw ... %AA%94-32a4bacbe351
https://blog.csdn.net/qq_29277155/article/details/107554762
頁: [1]
查看完整版本: 使用 PyInstaller 將 Python打包成 exe 或 sh 檔