Windows下PyInstaller(不安裝Python也能執行Py檔案)
直接使用Python開發的軟體時有許多不方便的地方,如需要安裝特定的Python環境,需要安裝依賴庫。為了便於部署,需要將Python原始碼編譯成可執行檔案,編譯後的可執行檔案就能脫離python環境運行了。
安裝
將py編譯成可執行檔案需要使用PyInstaller,需要注意,從百度搜索到的下載連結來自SourceForge,而PyInstaller的開發似乎已經轉到Github上去了,因此從SourceForge上下載的版本不是最新的。
目前最新的PyInstaller版本是2.1,最方便的安裝方式是通過pip
使用如下命令安裝:
pip install pyinstall
- 1
當然,也可以通過下載原始碼編譯方式安裝:
python setup.py install
安裝完成後,使用如下命令可以確認版本號:
pyinstaller --version
如果顯示Error: Python 2.6+ on Windows support need pywin32
,則說明當前沒有安裝pywin32,安裝後即可正常執行PyInstaller。
安裝pywin32時需要注意,pywin32的版本和本機Python位數和版本必須相同。
簡單使用
最簡單的使用方式是執行pyinstaller myscript.py
來生成可執行檔案,其中myscript.py
是需要編譯成可執行檔案的原始碼。
通過這種方式生成的可執行檔案預設位於當前資料夾的dist目錄下的myscript目錄中,該目錄下除了有exe檔案外,還有若干個其他檔案,這些檔案都是執行時必須的。
編譯完成後可以刪除build資料夾,該資料夾存放的是編譯過程中的生成的臨時檔案
如果希望編譯出的exe檔案不依賴其他檔案,可以新增-F
選項:
pyinstaller -F myscript.py
編譯出的單獨的exe檔案在啟動時速度上略慢於編譯成資料夾方式。因為在執行單獨的exe時會將資源先釋放到臨時資料夾中再執行。
常用選項
–distpath=path_to_executable
指定生成的可執行檔案存放的目錄,預設存放在dist目錄下
–workpath=path_to_work_files
指定編譯中臨時檔案存放的目錄,預設存放在build目錄下
–clean
清理編譯時的臨時檔案
-F, –onefile
生成單獨的exe檔案而不是資料夾
-d, –debug
編譯為debug模式,有助於執行中獲取日誌資訊
–version-file=version_text_file
為exe檔案新增版本資訊,版本資訊可以通過執行pyi-grab_version
加上要獲取版本資訊的exe檔案的路徑來生成,生成後的版本資訊檔案可以按需求修改並作為--version-file
的引數新增到要生成的exe檔案中去
i <FILE.ico>, -i <FILE.exe,ID>, –icon=<FILE.ico>, –icon=<FILE.exe,ID>
為exe檔案新增圖示,可以指定圖示路徑或者從已存在的exe檔案中抽取特定的ID的圖示作為要生成的exe檔案的圖示
另外,還可以通過spec檔案來生成可執行檔案,執行pyi-makespec options script [script ...]
可以生成spec檔案,修改spec檔案後執行:
pyinstaller specfile
或者
pyi-build specfi
就可以生成可執行檔案了。
spec檔案方式生成可執行檔案提供了更多的定製選項,包括自定義python庫的位置,要打包的其他檔案路徑等等。