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)
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |