如何使用setup.py的命令单击设置python代码?
我希望能够安装一些 python 代码,使用 python-click 和命令,使用setup.py. 我有以下完整代码:
import click
@click.group()
@click.option(
"-v",
"--verbose",
count=True,
default=0,
help="-v for DEBUG",
)
def cli(verbose):
print(verbose)
@cli.command("list")
@click.option(
"--option1"
)
def my_list_command(option1):
print(option1)
@cli.command("find")
@click.option(
"--option2"
)
def my_find_command(option2):
print(option2)
if __name__ == '__main__':
cli()
它定义了两个命令list和find。例如,当我按照mycode.py我的方式保存该文件时
python mycode.py list --option1 opt1
python mycode.py find --option2 opt2
并且代码按预期工作,即我有两个带有选项的命令。
但是,当我现在尝试安装此代码setup.py如下
from setuptools import setup, find_packages
setup(
name='MyCode',
install_requires=[
'click',
],
entry_points={
'console_scripts': [
'mytest=mycode.cli'
],
},
)
我收到错误
ERROR: For req: MyCode==0.0.1. Invalid script entry point: <ExportEntry mytest = mycode.cli:None []> - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.
如何正确设置多命令 python-click 代码,以便我可以像上面的例子一样使用它?
回答
你快到了,只需更改mycode.cli为mycode:cli。
指定入口点时,模块路径用 分隔.,入口点调用的函数在后面,前缀为:,例如package.module:function。
有关更多信息,请参阅文档。