python - setup.py 中的入口点

标签 python command-line-interface

我正在使用 Click 在 python 中创建 CLI。这是我的入口点脚本:

entry_points='''
    [console_scripts]
    noo=noo.noodle:downloader
''',

我制作了一个包,我在 __init__.py 文件中添加了 import noodle 以便它可以导入包含函数 downloader 的文件 noodle () - 需要由 entry_point 脚本执行。但是,当我安装 setup.py 时,出现错误:ImportError: No module named noo.noodle 当我运行 noodle --help 时在终端?

最佳答案

直接来自 documentation on click.pocoo.org :

你的脚本.py:

import click

@click.command()
def cli():
    """Example script."""
    click.echo('Hello World!')

设置.py:

from setuptools import setup

setup(
    name='yourscript',
    version='0.1',
    py_modules=['yourscript'],
    install_requires=[
        'Click',
    ],
    entry_points='''
        [console_scripts]
        yourscript=yourscript:cli
    ''',
)

如果您的 CLI 应用程序中有多个命令,我通常会像这样创建一个点击组:

初始化.py:

import click

@click.group()
@click.option('--debug/--no-debug', default=False, help='My test option.')
def cli(debug):
    """Add some initialisation code to log accordingly for debugging purposes or no"""
    pass  

@cli.command()
def configure():
    """Configure the application"""
    pass

setup.py 文件看起来与点击文档中的文件完全一样。

关于python - setup.py 中的入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23949425/

相关文章:

python - 仅返回天数的日期时间差异?

python - 为什么这段代码会在 PySpark 中抛出一个奇怪的错误?这真的是正确的方法吗?

javascript - 在JS中生成csv并使用ajax请求POST将其发送到flask

python - 仅将天数和时间(小时 x 分钟 x 秒)转换为时间

php - 内联 PHP(命令行)

bash - Bash自动完成IBM Cloud CLI吗?

python - 我怎样才能让 celery 任务完成后回调到 flask

php - 如何使用 php 将 bash 颜色代码解析为 html

windows - docker -无法计算缓存键: not found - runs fine in visual studio

c - C 语言的基本 CLI 程序