如何打包和部署 Python CLI 應用程式


根據介面,我們有兩種型別的應用程式:CLI(**C**ommand **L**ine **I**nterface,命令列介面)應用程式和 GUI(**G**raphical **U**ser **I**nterface,圖形使用者介面)應用程式。

命令列應用程式或控制檯應用程式可以透過文字介面從 shell 或命令列訪問,它們接受使用者以文字格式輸入。

與提供圖形介面的 GUI 應用程式不同,GUI 應用程式包含按鈕、文字框和圖示,供使用者訪問底層應用程式。

Python 是一種流行的用於開發 CLI 應用程式的程式語言,儘管打包和分發此類應用程式的過程有點困難。我們可以使用內建和外部工具輕鬆實現這一點。

讓我們看看使用 Python 打包和部署 CLI 應用程式所涉及的所有步驟。

步驟 1:建立 Python 包

首先,我們必須建立一個 Python 包來建立 CLI 應用程式。包是一個包含 **init.py** 檔案的資料夾,這表示該資料夾是一個 Python 包。當有人安裝此 CLI 應用程式時,這將非常有用。

我們可以為我們的包建立任何名稱的資料夾,並在其中新增 2 個檔案,第一個檔案是 **init.py**,第二個檔案是 **my_cli_app.py**。

在這個例子中,我們嘗試建立一個名為 **my_package** 的包,並新增一個名為 **my_cli_app.py** 的檔案,其中包含我們 CLI 應用程式的程式碼。

my_package/
 __init__.py
 my_cli_app.py

步驟 2:定義 CLI 入口點

在第二步中,我們將定義一個命令列介面入口點或 CLI 入口點。入口點是當我們從 CLI 執行應用程式時首先執行的 Python 函式。

click 庫是一個非常流行的 Python 庫,通常用於建立 CLI 應用程式。我們必須匯入 Python 的 click 庫來建立入口點。

在這個例子中,我們使用上面提到的 Python click 庫定義了一個 CLI 入口點。`@click.command()` 裝飾器通知 click 此函式是一個 CLI 命令。`@click.option()` 裝飾器定義了一個命令列選項,允許使用者向命令傳遞引數。

import click
@click.command()
@click.option('--name', default='World', help='The person to greet.')
def hello(name):
   click.echo(f'Hello, {name}!')
if __name__ == '__main__':
   hello()

步驟 3:將依賴項新增到 setup.py

第三步是將我們的依賴項新增到 **setup.py 檔案**。我們的 CLI 應用程式需要這些依賴項。**setup.py** 檔案由 Python 用於構建和安裝我們的 CLI 應用程式。為了新增依賴項,我們將使用 **setuptools.setup()** 函式中的 **install_requires** 引數。

在這裡,我們使用 install_requires 引數新增 click 作為依賴項。我們還使用 entry_points 引數為我們的 CLI 應用程式定義了一個入口點。console_scripts 入口點告訴 Python 這是一個命令列指令碼,並且 my_cli_app 命令被定義為入口點。

from setuptools import setup, find_packages
setup(
   name='my_package',
   version='0.1',
   packages=find_packages(),
   install_requires=[
      'click',
   ],
   entry_points='''
      [console_scripts]
      my_cli_app=my_package.my_cli_app:hello
      ''',
)

步驟 4:構建和分發我們的包

打包和部署基於 Python 的 CLI 應用程式的最後一步或第四步是構建和分發我們的包。使用“setuptools”庫,我們可以輕鬆地構建和分發我們的包。

要構建我們的包,請執行以下命令:

$ python setup.py sdist bdist_wheel

上述命令將在 dist 目錄或資料夾中建立我們的包的源分發 (sdist) 和二進位制分發 (bdist_wheel)。源分發 (sdist) 包含原始碼和資源,二進位制分發包含編譯後的程式碼,可以安裝在不同的平臺上。

要分發我們的包,我們需要使用 twine 庫將其上傳到 Python 包索引 (PyPI)。為此,我們必須在 PyPI 上擁有一個帳戶。因此,我們需要在 PyPI 上建立一個帳戶,然後使用 pip 安裝 twine 庫:

$ pip install twine

接下來,我們可以使用以下命令將我們的包上傳到 PyPI:

$ twine upload dist/*

此命令會將 dist/ 目錄中的所有分發版上傳到 PyPI。

步驟 5:安裝和使用我們的包

要安裝我們的 CLI 應用程式包,使用者可以使用 pip 從 PyPI 下載和安裝或打包:

$ pip install my_package

安裝包後,使用者可以使用 entry_points 引數中定義的 CLI 命令。在下面的程式碼片段中,我們將一個引數作為 name 傳遞給 --name 選項,該選項將被 hello 函式用來列印帶有作為引數給出的名稱的問候訊息。這使得應用程式更友好一些。

$ my_cli_app --name Alice
Hello, Alice!

結論

在本文中,我們學習瞭如何使用 Python 打包和部署命令列應用程式。我們學習了什麼是 CLI 應用程式,它如何有用,以及建立和部署 CLI 應用程式所需的所有步驟。我們可以按照本文中編寫的每個步驟操作,然後我們可以輕鬆地建立 Python 包、定義 CLI 入口點、將依賴項新增到 setup.py 檔案、建立和分發包以及安裝和使用我們的包。透過遵循上述步驟,我們可以確保我們的應用程式易於打包和部署,並且其他程式設計師可以輕鬆使用。

更新於:2023年4月20日

3K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.