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

时间:2014-04-29 02:28:17

标签: 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

1 个答案:

答案 0 :(得分:1)

我将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