2017-02-13 5 views
1

여러 개의 디렉토리에있는 파이썬 모듈을 문서화하기 위해 스핑크스 autodoc을 사용하고 있습니다. 이미 각 파이썬 모듈에 대한 첫 번째 파일을 가지고 있고 파이썬 모듈과 함께 하나의 디렉토리에 대한 경로를 선언 할 때 autodoc을 사용할 수 있지만 두 개의 다른 디렉토리에서 파이썬 모듈을 문서화하려고합니다. conf.py 파일에서, 내가 사용 :스핑크스 autodoc을 사용하여 다른 디렉토리에있는 파이썬 모듈 문서에 여러 경로를 사용하는 방법은 무엇입니까?

sys.path.insert (0, os.path.abspath ("../ python_modules_A"))

하지만 모두 python_modules_A의 경로를 가지고 싶습니다 그리고 python_modules_B, 내 모듈이 두 디렉토리에 있기 때문에. 내 프로젝트 팀의 구조를 감안할 때 python_modules_A 및 main 객체/클래스의 헬퍼 함수로 분리되어 있으므로 모듈을 하나의 디렉토리로 재구성하지 않아도됩니다.

다음은 내 디렉토리 구성 방법입니다.

sphinx_documentation_setup 
    conf.py 
    index.rst 
    a1.rst 
    b1.rst 
    a2.rst 
    b2.rst 
python_modules_A 
    a1.py 
    b1.py 
python_modules_B 
    a2.py 
    b2.py 

어떤 도움을 주셔서 감사합니다!

+0

conf.py에는 둘 이상의'sys.path.insert (...)'행이있을 수 있습니다. – mzjn

+0

conf.py에서 두 개의 경로를 선언했습니다. 하나는 python_modules_A와 python_modules_B이지만 make.html을 실행하면 sphinx는 나열된 첫 번째 경로 만 인식하고 두 번째 경로는 무시합니다. 예를 들어 sys.path.insert (0, os.path.abspath ("../ python_modules_A"))를 먼저 나열하고 sys.path.insert (0, os.path.abspath ("../ python_modules_B)), python_modules_B 디렉토리에있는 모든 파이썬 모듈에 대해 가져 오기 오류가 발생합니다 –

+1

[mcve]가 필요하다고 생각합니다. 한 가지로, 'automodule'지시어는 정확히 어떤 모양입니까? – mzjn

답변

2

해결책을 찾아 냈습니다. 나는 자동차 지시문에 경로를 지정하여 문제를 해결할 수 있었다. 예를 들어, 내 automodule 지시가 있었다를 미리 다음과 같이

sys.path.insert(0, os.path.abspath("..")) 

스핑크스 :

.. automodule:: a1 
.. automodule:: a2 

을하지만 난으로 conf.py의 경로를

.. automodule:: python_modules_A.a1 
.. automodule:: python_modules_B.a2 

로 전환하고 선언 할 때 두 디렉토리에서 파이썬 모듈을 찾을 수있었습니다.