2014-04-01 2 views
3

argparse 도움말의 출력에 pydoc을 표시하는 것에 대한 질문을 보았습니다. 그러나 나는 그 반대의 점을 보지 못했습니다.pydoc 내 argparse 도움말 표시

pydoc에서 파이썬 프로그램의 개요 및 항목 별 도움말 설명을 자동으로 렌더링 할 수있는 방법이 있습니까?

답변

2

format_help() 방법으로 도움말 문자열에 액세스 할 수 있습니다. 이를 사용하여 스크립트의 문서 문자열에 추가 할 수 있습니다. 하나의 간단한 예 :

""" 
This is my script. 
""" 

import argparse 

def _make_parser(): 
    p = argparse.ArgumentParser() 
    p.add_argument("foo", help="Specify foo") 
    x = p.add_mutually_exclusive_group(required=True) 
    x.add_argument('--uid') 
    x.add_argument('--username') 
    return p 

_p = _make_parser() 

__doc__ += _p.format_help() 

if __name__ == '__main__': 
    args = _p.parse_args() 
+0

나는 이와 같은 것이 작동하는지 궁금해했지만 작동시키지 못했습니다. 한 가지는, 만약 main()에 정의 된 argparse를 가지고 있다면, pydoc에 여분의 것을 보지 않고 테스트 프로그램의 주요 범위에서 정의한다면, 'pydoc test_docs.py'를 실행하십시오. 왜냐하면 pydoc이 실행될 때 필요한 모든 인수가 존재하지 않기 때문입니다 :'jazz % pydoc ./test_docs.py 사용법 : pydoc [-h] [--file FILE] (--uid | - -username) ... pydoc : 오류 : 인수 중 하나 --uid - 사용자 이름이 필요합니다../test_docs.py - : 2' – Will

+0

에 문제가 있습니다. 'main' 함수에서 여전히'parse_args'를 호출 할 수는 있지만, 파서 객체가 가져 오기 (import)시에 정의되었는지를 확인하십시오. – chepner

+0

전역 범위의 모든 항목에도 불구하고 위의 오류가 계속 발생합니다. 즉, 프로그램의 사용법을 구축하는 것보다는 프로그램이 실행되는 것처럼 인수를 구문 분석하려고합니다. – Will

관련 문제