首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在setup.py中通过点击命令来设置python代码?

如何在setup.py中通过点击命令来设置python代码?
EN

Stack Overflow用户
提问于 2021-03-22 19:16:44
回答 2查看 345关注 0票数 0

我希望能够安装一些python代码,使用python-click和命令,与setup.py。我有以下完整的代码:

代码语言:javascript
复制
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()

它定义了两个命令listfind。例如,当我将该文件保存为mycode.py时,我可以这样做

代码语言:javascript
复制
python mycode.py list --option1 opt1
python mycode.py find --option2 opt2

代码按预期工作,也就是说,我有两个带有选项的命令。

但是,当我现在尝试用setup.py安装这段代码时,如下所示

代码语言:javascript
复制
from setuptools import setup, find_packages
setup(
    name='MyCode',
    install_requires=[
        'click',
    ],
    entry_points={
        'console_scripts': [
            'mytest=mycode.cli'
        ],
    },
)

我得到了错误

代码语言:javascript
复制
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代码,以便我可以像上面的示例一样使用它?

EN

回答 2

Stack Overflow用户

发布于 2021-03-27 05:04:19

就快到了,只需将mycode.cli更改为mycode:cli即可。

在指定入口点时,模块路径用.分隔,而入口点要调用的函数位于后面,并以:为前缀,例如package.module:function

有关详细信息,请参阅the docs

票数 6
EN

Stack Overflow用户

发布于 2021-04-01 14:44:50

这是操作员的问题。

当从包中调用模块时,使用.。然而,

为了从特定的模块调用函数,需要使用:

查看Python-Packaging文档。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66744965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档