使用PyInstaller創建Python可執行檔

岱军 云云众生s

您已經花費時間創建了一個 Python 應用程序,您希望使用它或將其分發。

譯自How to Create a Python Executable File With PyInstaller,作者 Jack Wallen。

您已經花時間創建了一個Python 應用程序,您希望使用它或將其分發給可以從其強大功能中受益的人。您可能認為唯一的方法是將程式碼發送給他們,確保他們在機器上安裝了Python(以及程式碼所需的任何依賴項),並指示他們使用命令python3 appname.py運行程式碼。

當然,這可以工作,但並不有效率。如果您與可能不太了解 Python 的人共享應用程序,這可能會很麻煩。或者,即使他們了解 Python,您肯定也不希望將程式碼發送給他們並期望他們從命令列運行它。

相反,為什麼不從您的Python 程式碼創建一個可執行文件,這樣用戶只需雙擊它即可運行應用程序,或者將文件複製到其$PATH 中的目錄並從文件系統層次結構中的任何位置運行命令。

這就是我今天要向您展示如何做的事情。我們將使用我們先前建立的 Python 應用程式的程式碼(用於獲取使用者的輸入並使用GUI將其寫入檔案)並從中建立一個方便的可執行檔。

這是一種從 Python 程式碼創建便攜式應用程式的好方法。目標機器唯一的要求是安裝 Python(這是一個相當容易克服的障礙)。

好的,讓我們開始吧。

您需要什麼
要使此方法有效,您需要一台安裝了 Python 的機器以及我們上次建立的範例程式碼。我會在這裡添加程式碼,這樣您就不必搜尋它。我將在 Ubuntu 22.04 上演示此方法,但該過程適用於任何 Linux 發行版(或任何支援 Python 的作業系統)。如果您使用的是其他發行版或作業系統,則需要相應地調整 Pip 安裝過程。

安裝 Pip
要安裝 PyInstaller,您必須先確保安裝了 Pip(Python 套件管理器)。您可以使用以下命令檢查 Pip 是否已安裝:

如果您在控制台中看到版本號,則表示您已準備好。如果您收到錯誤,則需要安裝 Pip,這可以透過以下命令完成:

sudo apt-get install python3-pip -y
當上述命令完成後,您就可以繼續了。

接下來,我們需要安裝PyInstaller,它會讀取您的Python 程式碼,發現您的應用程式運行所需的每個模組和庫,收集所有必要的東西(包括Python 解釋器),並將它們與您的程式碼組合成一個單獨的資料夾或一個單獨的可執行檔。

若要安裝 PyInstaller,請執行下列命令:

就是這樣。您已準備好。

將所有內容捆綁在一起
我將首先向您展示如何使用 PyInstaller 為您的應用程式建立捆綁包。所有這些都將包含在一個資料夾中,其中包含一個可執行檔和一個包含依賴項的資料夾。

請記住,我們用於輸入 GUI 的程式碼如下所示:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout

class UserInputApp(QWidget):
def __init__(self):
super().__init__()
self.init_ui()

def init_ui(self):
self.setWindowTitle(‘User Input App’)
self.setGeometry(100, 100, 400, 200)
self.label = QLabel(‘Enter text:’)
self.text_input = QLineEdit()
self.save_button = QPushButton(‘Save to File’)
self.save_button.clicked.connect(self.save_to_file)
layout = QVBoxLayout()
layout.addWidget(self.label)
layout.addWidget(self.text_input)
layout.addWidget(self.save_button)
self.setLayout(layout)

def save_to_file(self):
text = self.text_input.text()
with open(‘user_input.txt’, ‘a+’) as file:
file.write(text + ‘\n’)
print(‘Text saved to file.’)

if __name__ == ‘__main__’:
app = QApplication(sys.argv)
window = UserInputApp()
window.show()
sys.exit(app.exec_())

讓我們使用以下命令建立一個新目錄:

使用以下命令變更到該目錄:

使用以下命令建立 Python 檔案:

將上面的程式碼貼到該文件中,然後儲存/關閉它。然後,您可以使用以下命令建立捆綁資料夾:

當命令完成後,使用以下命令變更到 dist 目錄:

在這個資料夾中,你會找到一個名為 input 的子資料夾,其中包含可執行文件,以及一個名為 _internal 的資料夾。使用cd input命令進入 input 資料夾,然後你可以使用以下命令運行你的應用程式:

./input

輸入 GUI 將會打開,你可以使用該應用程式。

如果你想以這種方式分發應用程序,你需要將 INPUT_APP/dist/input 資料夾複製給任何需要它的人,他們就可以像你一樣運行它(只要他們的機器上安裝了 Python)。

有一個更簡單的方法。

建立單一文件可執行文件
最好的方法是使用 PyInstaller 建立單一檔案可執行檔。這裡唯一的區別是你在(INPUT_APP 資料夾內)運行的命令,它是:

pyinstaller –noconsole –onefile input.py

–noconsole 選項指示 PyInstaller 抑制應用程式啟動時不可避免地開啟的終端窗口,而 –onefile 則告訴 PyInstaller 建立單一檔案可執行檔。

當此命令完成時,你將在 dist/input 目錄中找到單一檔案可執行檔。然後,你可以將該檔案複製到你的 $PATH 中的目錄(例如 /usr/local/bin)或複製給任何需要該應用程式的人。

這就是從 Python 程式碼建立可執行檔的所有步驟。使用這種便捷的方法,你的應用程式不僅更容易運行,而且更容易分發給其他用戶。

This entry was posted in News.

发表评论

邮箱地址不会被公开。 必填项已用*标注


*

在线客服系统