python - 如何使用 pydoc 为带有 argparse 的模块生成文档?

标签 python command-line-arguments pydoc

我有一个名为 LC_cmdline.py 的 python 模块,带有 argparse,如下所示。

import argparse
import getpass

def get_pass():
    return getpass.getpass("Password: ")
def default_pass():
    return ''

parser = argparse.ArgumentParser()
parser.add_argument('-u', default='', type=str, metavar='username', dest='username', help="Username for the database")
parser.add_argument('-p', action='store_const', const=get_pass, default=default_pass, dest='get_pass', help="Password for the database")

args = parser.parse_args()

if __name__ == '__main__':
    print "username: [%s]"%args.username
    print "password: [%s]"%args.get_pass()

我尝试使用命令 python -m pydoc -w LC_cmdline 将它转换为 pydoc 文档。然后我得到了这个错误:

usage: pydoc.py [-h] [-u username] [-p]
pydoc.py: error: unrecognized arguments: -w LC_cmdline
problem in LC_cmdline - <type 'exceptions.SystemExit'>: 2

有没有办法通过 pydoc 为带有参数的模块生成文档?谢谢。

顺便说一句,我的操作系统是win7,我的python是2.7

最佳答案

我会将 parser.parse_args() 移动到 if 中,如下所示:

...
if __name__ == '__main__':
    args = parser.parse_args()
    print "username: [%s]"%args.username
    print "password: [%s]"%args.get_pass()

结果:

$ pydoc -w LC_cmdline
wrote LC_cmdline.html

关于python - 如何使用 pydoc 为带有 argparse 的模块生成文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354425/

相关文章:

python - 为什么我不能导入我自己创建的Python包?

python - 使用 pydoc 时导入错误

python - python 标准库类/方法的综合引用

python - 一个python对象中的双迭代器

python - 如何将 dtype(uint16) 数据转换为 16 位 png 图像?

Python Tkinter - 关闭对话框而不关闭主窗口

python - python站点手册完全由pydoc生成吗?

android - 如何告诉 Gradle 从命令行使用不同的 AndroidManifest?

windows - 有没有办法让 Perl 支持通配符命令行参数,例如 Windows 上的 "*.txt"?

python - 为什么在 python 中打印参数不起作用?