修改Windows上的Click命令行界面上的Usage字符串

gau*_*den 7 python command-line-interface

我有一个Python包tdsm,我使用Armin Ronacher的Click包第一次转换为命令行界面.我在这个目录结构中设置了我的脚本:

在此输入图像描述

我也创建了一个setup.py文件:

from setuptools import setup

setup(
    name='tdsm',
    version='0.1',
    py_modules=['tdsm.scripts.data_manager',
                'tdsm.scripts.visuals'],
    include_package_data=True,
    install_requires=[
        'click',
        'numpy',
        'scipy',
        'pandas',
        'wand',
        'matplotlib',
    ],
    entry_points='''
        [console_scripts]
        tdsm=tdsm.main:cli
    ''',
)
Run Code Online (Sandbox Code Playgroud)

经过一段时间pip install --editable .,我开始工作,直到某一点:

# tdsm --help
Run Code Online (Sandbox Code Playgroud)

现在发出:

Usage: tdsm-script.py [OPTIONS] COMMAND [ARGS]...

  TDSM standard workflow -- typical sequence of commands:

      `init <path>` or `open <path>`: to set up the project or to open
      a new session on an existing project.

      `plot`: framework for setting up plots, display layers, and styling.

Options:

  --help  Show this message and exit.

Commands:

  init     Set up a project from scratch.
  plot     Initialize a plotting session.
Run Code Online (Sandbox Code Playgroud)

请注意用法说明用法:tdsm-script.py [OPTIONS] COMMAND [ARGS] ...而不是用法:tdsm [OPTIONS] COMMAND [ARGS] ...我相信它应该.由于我期望非程序员使用它,我不希望用户钻研系统寻找不存在的文件......

通过文档阅读我可以看到如何更改帮助文本的每个方面,但不是这个初始引用tdsm-script.py.关于我做错了什么的指示?

gau*_*den 12

这个问题在得到解决GitHub的错误话题马库斯Unterwaditzer.我在这里重现它的记录.

一个人只是用一个显式prog_name参数调用命令(或我的情况下的组),因此:

import click

@click.group()
def cli():
    pass

@cli.command(short_help='Set up a project from scratch.')
def init():
    pass

@cli.command(short_help='Initialise a plotting session.')
def plot():
    pass

cli(prog_name='tdsm')  # Call with explicit `prog_name`
Run Code Online (Sandbox Code Playgroud)

在安装软件包时,会报告正确的用法:

# tdsm --help
Usage: tdsm [OPTIONS] COMMAND [ARGS]...
Run Code Online (Sandbox Code Playgroud)