click Setuptools Integration

https://click.palletsprojects.com/en/7.x/setuptools/

介紹

clicksetuptools自動生成命令行

工程的結構如下:

yourscript.py
setup.py

yourscript.py

import click

@click.command()
def cli():
    """Example script."""
    click.echo('Hello World!')

setup.py

from setuptools import setup

setup(
    name='yourscript',
    version='0.1',
    py_modules=['yourscript'],
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        yourscript=yourscript:cli
    ''',
)

entry_points中的console_scripts中每一行就是一個命令行,yourscript=yourscript:cli中的第一個yourscript是命令行腳本的名稱,第二個yourscript是模塊名,第三個是cli是模塊中的方法

測試腳本

$ virtualenv venv
$ . venv/bin/activate
$ pip install --editable .
$ yourscript
Hello World!

將命令行放在包裏面

如果腳本增多,並想放在包裏面,則可以按照下面的來排列:

yourpackage/
    __init__.py
    main.py
    utils.py
    scripts/
        __init__.py
        yourscript.py
from setuptools import setup, find_packages

setup(
    name='yourpackage',
    version='0.1',
    packages=find_packages(),
    include_package_data=True,
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        yourscript=yourpackage.scripts.yourscript:cli
    ''',
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章