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
    ''',
)

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