https://click.palletsprojects.com/en/7.x/setuptools/
介绍
用click
和setuptools
自动生成命令行
工程的结构如下:
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
''',
)