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