本教程提取了pyinstaller官方文檔部分內容並加以翻譯, 希望給初學者一點指導, 僅供參考
- 安裝pyinstaller:
pip install pyinstaller
https://pyinstaller.readthedocs.io/en/stable/usage.html
想看例子往後翻
--------正文開始--------
使用pyinstaller的命令格式是:
pyinstaller [options] script [script …] | specfile
初級用法,不編輯.spec文件
pyinstaller [options] script
最簡單的情況下, 在命令行中切換到你的腳本myscript.py
所在的目錄後, 執行
pyinstaller myscript.py
即可
pyinstaller會分析你的代碼myscript.py
並且:
- 在腳本所在目錄下創建
myscript.spec
(高級用法, 不用管) - 在腳本所在目錄下創建
build
文件夾, 並在其中寫入日誌文件和程序運行產生的文件 - 在腳本所在目錄下創建
dist
文件夾, 並在其中寫入生成的myscript
的可執行文件(.exe)
[options]寫什麼?
一般設置
即命令格式中的[options]
選項 | 功能 | 示例 |
---|---|---|
-h 或者 --help | 顯示幫助功能 | pyinstaller -h myscript.py |
- -distpath [路徑] | 生成的exe的目錄(默認在dist文件夾) | pyinstaller --distpath Myexe |
生成什麼?
選項 | 功能 | 示例 |
---|---|---|
-D 或者 --onedir | 此爲默認選項, 創建一個單一bundle文件夾, 內含可執行文件 | pyinstaller -D myscript.py |
-F 或者 --onefile | 創建一個單一文件, 即是可執行文件 | pyinstaller -F myscript.py |
- -specpath [路徑] | 保存spec文件的文件夾(默認與腳本在同一目錄) | pyinstaller - -specpath MYSPEC |
pyinstaller檢查python從哪裏import?
選項 | 功能 | 示例 |
---|---|---|
-p [路徑] 或者 --paths [路徑] | 搜索 py 文件import的路徑.允許設置多個路徑, 以 : 分隔, 或者說重複使用這個命令. | 一般情況不用設置, 只要你編譯器中能成功import就沒問題(環境變量中的路徑是生效的). |
- -key [密鑰] | 用來加密python字節碼的密鑰 | 無特殊情況不用設置 |
windows和mac OS X特定命令
命令 | 功能 | 示例 |
---|---|---|
-c 或者 --console 或者 --nowindowed | 打開一個控制檯窗口, 這是默認選項, 在windows系統中, 如果入口文件是 .pyw 文件, 此選項無效. | 默認的, 不用寫 |
-w或者–windowed 或者 --noconsole | 不顯示控制檯窗口(類似cmd的黑框框), 如果你寫的是帶UI的程序, 此選項基本必選.如果入口程序是pyw文件, 此選項默認生效. | pyinstaller -w myscript.py |
實戰
假設有兩個文件, func.py , main.py 同在 新建文件夾
中
func.py
def test():
print('test!')
input('按回車鍵繼續...')
main.py
import func
if __name__ == '__main__':
func.test()
-
在文件夾中按住shift, 右鍵會發現多出了一個選項"在此處打開PowerShell", 點擊此項打開powershell窗口(有的電腦是cmd ,都可以 ).
-
我這個程序不帶UI, 所以需要顯示控制檯.我不想生成很多文件, 所以我選擇
-F
, 我想把spec文件歸納到文件夾specfolder
中, 所以我選擇--spec specfolder
-
在powershell中(cmd中也可以)運行
pyinstaller -F --spec specfolder main.py
-
成功, 打開dist文件夾,發現
main.exe
-
雙擊運行
-