PyInstaller使用教程


 

簡介

PyInstaller是一個第三方庫,它能夠在Windows、Linux、 Mac OS X 等操作系統下將 Python 源文件打包, 通過對源文件打包, Python 程序可以在沒有安裝 Python 的環境中運行,也可以作為一個 獨立文件方便傳遞和管理

PyInstaller支持Python 2.7和Python 3.3+。可以在Windows、Mac OS X和Linux上使用,但是並不是跨平台的,而是說你要是希望打包成.exe文件,需要在Windows系統上運行PyInstaller進行打包工作;打包成mac app,需要在Mac OS上使用。

 

安裝與更新

安裝:pip/pip3 install pyinstaller
更新:pip/pip3 install --upgrade pyinstalle
注意:
1.PyInstaller 庫會自動將 PyInstaller 命令安裝到 Python 解釋器 目錄中,與 pip 或 pip3 命令路徑相同,因此可以直接使用。 

2.Windows上運行PyInstaller還需要PyWin32或者pypiwin32,其中pypiwin32在你安裝PyInstaller的時候會自動安裝。

 

 

PyInstaller生成可執行程序

PyInstaller 工具的命令語法如下:

pyinstaller 選項 Python 源文件

不管這個 Python 應用是單文件的應用,還是多文件的應用,只要在使用 pyinstaller 命令時編譯作為程序入口的 Python 程序即可。

PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上運行。在不同的平台上使用 PyInstaller 工具的方法是一樣的,它們支持的選項也是一樣的。

下面先創建一個 app 目錄,在該目錄下創建一個 app.py 文件,文件中包含如下代碼:

from say_hello import *
def main():
print('程序開始執行')
print(say_hello('孫悟空'))
# 增加調用main()函數
if __name__ == '__main__':
main()

接下來使用命令行工具進入到此 app 目錄下,執行如下命令:

pyinstaller -F app.py

執行上面命令,將看到詳細的生成過程。當生成完成后,將會在此 app 目錄下看到多了一個 dist 目錄,並在該目錄下看到有一個 app.exe 文件,這就是使用 PyInstaller 工具生成的 EXE 程序。

在命令行窗口中進入 dist 目錄下,在該目錄執行 app.exe ,將會看到該程序生成如下輸出結果:

程序開始執行
孫悟空,您好!

由於該程序沒有圖形用戶界面,因此如果讀者試圖通過雙擊來運行該程序,則只能看到程序窗口一閃就消失了,這樣將無法看到該程序的輸出結果。

在上面命令中使用了-F 選項,該選項指定生成單獨的 EXE 文件,因此,在 dist 目錄下生成了一個單獨的大約為 6MB 的 app.exe 文件(在 Mac OS X 平台上生成的文件就叫 app,沒有后綴);與 -F 選項對應的是 -D 選項(默認選項),該選項指定生成一個目錄(包含多個文件)來作為程序。

下面先將 PyInstaller 工具在 app 目錄下生成的 build、dist 目錄刪除,並將 app.spec 文件也刪除,然后使用如下命令來生成 EXE 文件。

pyinstaller -D app.py

執行上面命令,將看到詳細的生成過程。當生成完成后,將會在 app 目錄下看到多了一個 dist 目錄,並在該目錄下看到有一個 app 子目錄,在該子目錄下包含了大量 .dll 文件和 .pyz 文件,它們都是 app.exe 程序的支撐文件。在命令行窗口中運行該 app.exe 程序,同樣可以看到與前一個 app.exe 程序相同的輸出結果。

PyInstaller 不僅支持 -F、-D 選項,而且也支持如表 1 所示的常用選項。

表 1 PyInstaller 支持的常用選項
-h,--help 查看該模塊的幫助信息
-F,-onefile 產生單個的可執行文件
-D,--onedir 產生一個目錄(包含多個文件)作為可執行程序
-a,--ascii 不包含 Unicode 字符集支持
-d,--debug 產生 debug 版本的可執行文件
-w,--windowed,--noconsolc 指定程序運行時不顯示命令行窗口(僅對 Windows 有效)
-c,--nowindowed,--console 指定使用命令行窗口運行程序(僅對 Windows 有效)
-o DIR,--out=DIR 指定 spec 文件的生成目錄。如果沒有指定,則默認使用當前目錄來生成 spec 文件
-p DIR,--path=DIR 設置 Python 導入模塊的路徑(和設置 PYTHONPATH 環境變量的作用相似)。也可使用路徑分隔符(Windows 使用分號,Linux 使用冒號)來分隔多個路徑
-n NAME,--name=NAME 指定項目(產生的 spec)名字。如果省略該選項,那么第一個腳本的主文件名將作為 spec 的名字

在表 1 中列出的只是 PyInstaller 模塊所支持的常用選項,如果需要了解 PyInstaller 選項的詳細信息,則可通過 pyinstaller -h 來查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM