3

I am making a CLI in python using Click. This is my entry point script:

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

I have made a Package, I have added import noodle in the __init__.py file so that it could import the file noodle which contains the function downloader() - which needs to be executed by the entry_point script. But when I install the setup.py, I get an Error: ImportError: No module named noo.noodle when I run noodle --help in terminal?

vITs
  • 1,651
  • 12
  • 30
Delete Me
  • 111
  • 1
  • 4
  • 12
  • 1
    Do a test. After you install your program by `$ python setup.py`, try to open Pyhton console (or iPython) and do `import noo.noodle`. If this fails, your setup did not manage installing required package and module. – Jan Vlcinsky May 30 '14 at 13:36

1 Answers1

1

Directly from the 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
    ''',
)

While if you have multiple commands in your CLI application, I usually create a click group like this:

init.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

And the setup.py file looks exactly the same as the one in the click documentation.

Stephen Rauch
  • 47,830
  • 31
  • 106
  • 135
cgiacomi
  • 4,629
  • 6
  • 27
  • 33