setup.py中的入口点

时间:2014-05-30 07:37:40

标签: python command-line-interface

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

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

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

1 个答案:

答案 0 :(得分:1)

直接来自documentation on click.pocoo.org

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

如果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文件看起来与点击文档中的文件完全相同。