click python cli 開發包


python click 包是一個方便的cli 開發包,我們可以用來開發強大的cli 應用

使用venv 進行環境准備,示例代碼來自官方

venv 環境准備

python3 -m venv demoapp

安裝

pip install click

基本使用

  • 代碼

    cli.py

import click

@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name",
              help="The person to greet.")
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for _ in range(count):
        click.echo("Hello, %s!" % name)

if __name__ == '__main__':
    hello()
  • 運行
python cli.py

效果

python cli.py 
Your name: dalong
Hello, dalong!

制作一個pip 包

制作pip 包可以方便進行我們的代碼分發,還是使用venv 進行環境的准備

  • 項目結構
├── README.md
├── cli
│ └── __init__.py
└── setup.py
  • 代碼說明
    cli/init.py 核心代碼
import click
@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name",
              help="The person to greet.")
def hello(count, name):
    """Simple program that greets NAME for a total of COUNT times."""
    for _ in range(count):
        click.echo("Hello, %s!" % name)

if __name__ == '__main__':
    hello()

setup.py pip 包配置

import setuptools
with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="dalongrong_cli-demo",
    version="0.0.1",
    author="dalongrong",
    author_email="1141591465@qq.com",
    description="a simple cli project",
    long_description=long_description,
    install_requires=['click'],
    long_description_content_type="text/markdown",
    url="https://github.com/rongfengliang/click-cli-demo.git",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    entry_points={
        'console_scripts': [
            'dalongcli=cli:hello',
        ],
    }
)
  • 本地安裝測試
pip install .

cli 使用命令

dalongcli --name dalong --count 3

效果

Hello, dalong!
Hello, dalong!
Hello, dalong!
  • 說明
    比較好的方法是push 到pip 私服(企業內部),或者push 到公共pip 倉庫,方便大家都使用,具體的可以參考 自定義pip 開發

參考資料

https://github.com/pallets/click
https://click.palletsprojects.com/en/7.x/
https://www.cnblogs.com/rongfengliang/p/10219292.html
https://github.com/rongfengliang/click-cli-demo
https://packaging.python.org/guides/distributing-packages-using-setuptools/#install-requires


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM