如何打包和部署 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 檔案、建立和分發包以及安裝和使用我們的包。透過遵循上述步驟,我們可以確保我們的應用程式易於打包和部署,並且其他程式設計師可以輕鬆使用。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP