1. 程式人生 > >Windows下PyInstaller(不安裝Python也能執行Py檔案)

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庫的位置,要打包的其他檔案路徑等等。