如何覆盖 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...'
)