简体   繁体   English

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

[英]How to Use pydoc generate documentation for a module with argparse?

I have a python module named LC_cmdline.py with argparse as follows. 我有一个名为argparse的LC_cmdline.py python模块,如下所示。

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()

I tried to convert it to a documentation by pydoc using the command python -m pydoc -w LC_cmdline . 我试图使用命令python -m pydoc -w LC_cmdline将其转换为pydoc的文档。 Then I got this error: 然后我得到了这个错误:

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

Is there a way to generate a documentation for a module with arguments like mine by pydoc? 有没有一种方法可以为模块生成带有pydoc之类的参数的文档? Thank you. 谢谢。

BTW, my OS is win7, and my python is 2.7 顺便说一句,我的操作系统是win7,而我的python是2.7

I'd move parser.parse_args() inside the if , like so: 我将parser.parse_args()移动到if ,如下所示:

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

Result: 结果:

$ pydoc -w LC_cmdline
wrote LC_cmdline.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM