命令列指令碼 - Python 打包


Python 是一種非常流行且功能強大的程式語言,用於建立大量具有不同用途的應用程式。命令列介面指令碼或 CLI 指令碼是一種執行特定任務的指令碼,當透過命令列執行時,它會根據指令碼執行,並且它用於自動化許多工。CLI 指令碼對開發人員非常有用。

我們也可以在 python 中建立這些 CLI 指令碼。建立 CLI 指令碼後,我們還可以對其進行打包並與其他程式設計師共享以供使用。因此,我們必須瞭解如何打包 CLI 指令碼並分發它。在本文中,我們將介紹打包和分發的所有必要步驟。

本文將指導您完成打包 Python 指令碼並分發它們所需的所有步驟,這將使您能夠輕鬆地自行打包指令碼。

建立命令列指令碼的步驟

我們將按照以下步驟在 python 中建立命令列指令碼:

步驟 1:匯入所需的庫

我們需要為此任務匯入 argpase 庫。此庫有助於解析命令列引數。

import argparse

步驟 2:建立命令列指令碼

我們首先需要在 python 中建立一個命令列指令碼或 CLI 指令碼。這將包含指令碼執行時執行的主要函式。這還可以使用 argparse 庫接受來自命令列本身的引數。以下是一個簡單的 CLI 指令碼示例:

import argparse
def greet(name):
   print(f"Hello, {name}!")
if __name__ == "__main__":
   parser = argparse.ArgumentParser()
   parser.add_argument("name", help="Enter name: ")
   args = parser.parse_args()
   greet(args.name)

上面的指令碼有一個 greet 函式,它接受一個名稱作為引數並列印其中寫入的問候語,以及命令列中的該名稱/引數。我們可以在終端或命令列中執行以下命令來執行此指令碼:

python greet.py Tutorialspoint

這將執行指令碼並給出以下輸出:

Hello, Tutorialspoint!

步驟 3:新增依賴項和打包要求

大多數命令列指令碼都依賴於其他庫或包。這些依賴項需要包含在包中,以便可以與指令碼一起安裝。您可以透過在與指令碼相同的目錄中建立 requirements.txt 檔案來將依賴項新增到您的包中。

如果您正在處理的專案需要一些庫,那麼 requirements.txt 將包含所有這些庫的名稱,例如,如果它需要 requests 庫和 argparse 庫,則 requirments.txt 將為:

requests
argparse

此檔案指定包需要 requests 庫。

步驟 4:使用 Setuptools 建立包

建立命令列指令碼並定義指令碼所需的依賴項後,我們可以開始使用 setuptools 庫為其建立包。此庫提供用於構建和分發包的工具和功能。

要使用 setuptools 庫,我們需要在指令碼已存在的目錄中建立一個 setup.py 檔案。以下是 setup.py 檔案的示例:

from setuptools import setup, find_packages
setup(
   name="greet",
   version="0.1.0",
   packages=find_packages(),
   install_requires=["requests"],
   entry_points={
      "console_scripts": [
         "greet=greet:main",
      ],
   },
)

此檔案使用 setup 函式定義包名稱、版本和依賴項。它還使用 entry_points 字典指定指令碼的入口點。這告訴 setuptools 建立一個名為 greet 的控制檯指令碼,該指令碼執行 greet 模組中的 main 函式。

步驟 5:分發包

使用 setuptools 庫建立 CLI 指令碼的包後,我們的包已準備好分發並供其他使用者或程式設計師使用。我們可以使用 PyPI 或 Python 包索引來分發我們的包。PyPI 是一個 Python 包的儲存庫,它使使用者能夠安裝包並輕鬆共享它們。

我們將使用 twine 工具將包分發到 PyPI。我們需要建立 2 個檔案,一個名為 sdist,代表原始碼分發,另一個名為 bdist__wheel,代表輪子分發。我們可以透過以下命令執行此操作:

python setup.py sdist bdist_wheel

這將在 dist 目錄中建立兩個分發檔案:一個原始碼分發 (*.tar.gz) 和一個輪子分發 (*.whl)。接下來,我們可以使用 twine 工具將我們的包上傳到 PyPI。首先,使用 pip 安裝 twine:

pip install twine

然後,導航到 dist 目錄並使用以下命令上傳您的包:

twine upload dist/*

此後,我們的包將上傳到 PyPI,這使得其他使用者可以透過 pip 安裝後使用它。

結論

在本文中,我們學習瞭如何為命令列指令碼建立包以及如何分發它。我們瞭解了 CLI 指令碼的用途及其目的。我們還學習了 argparse 和 requests 兩個包。我們介紹了打包 CLI 並將其分發到 PyPI 所需的所有步驟。透過仔細按照文章中提到的所有步驟,您也可以輕鬆地建立 CLI 指令碼並將其打包和分發。

更新於:2023年4月20日

273 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.