如何覆盖 argparse -h 使用信息中的 cli 名称?
How to override the cli name in argparse -h usage information?
我正在将我的 python 应用程序捆绑到一个 .AppImage 文件中。现在,当我 运行 它带有标志 -h
时,我希望它打印出以下内容:
$ ./mytool.AppImage -h
usage: mytool [-h] [-d DIR] [-f] [-e] [BLA [BLA ...]]
...
但由于 AppImage 捆绑过程的性质,我得到:
$ ./mytool.AppImage -h
usage: AppRun [-h] [-d DIR] [-f] [-e] [BLA [BLA ...]]
...
即AppRun
而不是mytool
。
所以我的问题是:
如何强制覆盖应用程序名称,以便无论应用程序如何调用,它始终在用法字符串中打印相同的名称?
根据 hpaulj 的评论,这可以通过简单地设置 argparse.ArgumentParser
构造函数的 prog
参数来解决:
parser = argparse.ArgumentParser(
prog='mytool',
description='Some description...'
)
我正在将我的 python 应用程序捆绑到一个 .AppImage 文件中。现在,当我 运行 它带有标志 -h
时,我希望它打印出以下内容:
$ ./mytool.AppImage -h
usage: mytool [-h] [-d DIR] [-f] [-e] [BLA [BLA ...]]
...
但由于 AppImage 捆绑过程的性质,我得到:
$ ./mytool.AppImage -h
usage: AppRun [-h] [-d DIR] [-f] [-e] [BLA [BLA ...]]
...
即AppRun
而不是mytool
。
所以我的问题是:
如何强制覆盖应用程序名称,以便无论应用程序如何调用,它始终在用法字符串中打印相同的名称?
根据 hpaulj 的评论,这可以通过简单地设置 argparse.ArgumentParser
构造函数的 prog
参数来解决:
parser = argparse.ArgumentParser(
prog='mytool',
description='Some description...'
)