首頁 > 軟體

pyinstaller將python程式打包為可執行檔案

2022-08-17 14:01:45

前言

對於專業的python程式設計師來說,python打包工具或許用得並不多。但是對於非專業人士來說,你給他寫個python專案,要讓他安裝python、安裝依賴等等,估計人都會抓狂。或者說,如果你不想暴露自己的專案程式碼,python打包工具就派上用場了,市面上有多種打包工具,這裡就講講最常用的pyinstaller的使用方法吧。

pyinstaller簡介

pyinstaller是一個python打包工具,它將python程式及所需依賴都打包成一個可執行檔案。

說詳細點就是:輸入指定的python指令碼,pyinstaller首先會分析指令碼所依賴的其他指令碼,查詢後將所有指令碼收集起來(包括python直譯器),最後將這些檔案放到一個目錄下,或者是打包到一個可執行檔案中。打包後我們只需要執行可執行檔案即可,無需再安裝繁雜的python環境。

需要注意的是,pyinstaller不是交叉編譯器。就是說如果你要將python程式打包成一個能在windows執行的檔案,那麼你只能在windows上使用pyinstaller來完成打包過程,而不能在其他系統如linux、macos上打包。

pyinstaller下載

首先,因pyinstaller支援python的版本需>=3.7,所以我們要確保在python3.7或更新的版本上使用。

安裝:

pip install pyinstaller

下載完成後,執行pyinstaller -h,顯示如下則安裝成功。

pyinstaller使用

準備好程式程式碼

這裡以一個簡單的python程式為例,新建一個a.py檔案,內容如下:

import fire

def print_msg(msg):
    print("print here:", msg)

if __name__ == "__main__":
    fire.Fire(print_msg)

打包程式

常用到的命令:

標題引數說明
-Fpyinstaller -F a.py在dist目錄下生成一個可執行檔案
-Dpyinstaller -D a.py在dist目錄中,除了可執行檔案,還會生成依賴檔案

這裡使用第一種方式來生成檔案,執行pyinstaller -F a.py

執行後,我們可在當前目錄下看到多了幾個檔案/目錄,分別是a.spec、build目錄、dist目錄。

  • .spec檔案:記錄的是打包引數等資訊,也可以預先準備好spec檔案直接打包。
  • build目錄:記錄的是打包所產生的檔案,我們可忽略。
  • dist目錄:放的是可執行檔案及依賴,例子中dist目錄下的a檔案就是可執行檔案。
$ ls
a.py a.spec build/ dist/
$ ls dist
a

執行一下試試:./dist/a 你好

$ ./dist/a 你好
print here: 你好

結果如預期,打包就完成了。接下來我們將dist目錄給到需要的人就行了。

小結

這裡簡單介紹了pyinstaller的使用方法,在我們需要打包python程式的時候,pyinstaller是不二之選。特別需要注意的是,pyinstaller不能跨系統使用哦。

到此這篇關於pyinstaller將python程式打包為可執行檔案的文章就介紹到這了,更多相關 python打包可執行檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com