setup.py中的入口点
我正在用Python和Click做一个命令行工具。这是我的入口脚本:
entry_points='''
[console_scripts]
noo=noo.noodle:downloader
''',
我已经创建了一个包,并在__init__.py
文件中添加了import noodle
,这样就可以导入包含downloader()
函数的noodle文件了——这个函数需要在entry_point
脚本中执行。但是,当我安装setup.py
后,在终端运行noodle --help
时,出现了一个错误:ImportError: No module named noo.noodle
。
1 个回答
1
直接来自于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
''',
)
如果你的命令行应用有多个命令,我通常会像这样创建一个click组:
初始化文件: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
而且setup.py
文件和click文档中的完全一样。