2011-08-02 3 views
11

나는 스핑크스 내 프로젝트에 대한 문서를 작성하려고하고있어 스핑크스 내 모듈에 OptionParser가 발생할 때마다 나에게 제공합니다OptionParser가 sphinx와 충돌합니까?

sphinx-build: error: no such option: -b 

나는 그것이 불가능하다고 생각, 그래서이를 확인하는 간단한 모듈을 썼다 :

from optparse import OptionParser 

"""some comment here""" 

parser = OptionParser(conflict_handler='resolve') 
parser.add_option('', '--force', action='store_true', dest='force', default=False, help='gqdel will skip asking questions, and delete them all.'); 
parser.add_option('', '--verbose', action='store_true', dest='verbose', default=False, help='Report additional information from gqdel') 

(options, args) = parser.parse_args() 

"""and here""" 

print "foo" 

그리고 나에게도 같은 오류가 발생합니다. 내 첫 번째는 다음과 같습니다 스핑크스가 실행되면

, autodoc이 모듈을 수입하고 모듈의 최상위 코드가 실행됩니다

여기
some title 
========== 

.. automodule:: test 
    :members: 

답변

17

내가 어떻게 생각입니다. OptionParser 인스턴스가 만들어지고 sphinx-build에 전달 된 명령 줄 인수와 옵션을 처리합니다 (one of which is -b). OptionParser는이 옵션을 허용하지 않습니다.

모듈을 가져올 때 OptionParser 코드가 실행되지 않도록 OptionParser 코드를 함수에 넣겠습니다.

+2

+1; 'parser.parse_args()'는 모듈 수준의 코드에서 아무런 일도하지 않습니다. 단지 sphynx가 그것에 대해서 불평하지 않기 때문 만은 아닙니다. – SingleNegationElimination

+0

옙, 그건 내 문제 였어, 고마워. – Michal

4

이것은 나를 위해 속임수를 쓰며 바닥에 이것을 추가합니다.

if __name__ == '__main__': 

    parser = optparse.OptionParser() 
관련 문제