IT TIP

numpy, scipy 및 matplotlib에 대한 intersphinx 링크의 대상 지정

itqueen 2020. 11. 28. 13:22
반응형

numpy, scipy 및 matplotlib에 대한 intersphinx 링크의 대상 지정


패키지 간 Sphinx 문서 링크 설정에 대한 문서에 따라

intersphinx_mapping = {'python': ('http://docs.python.org/2', None),
                       'numpy': ('http://docs.scipy.org/doc/numpy/', None),
                       'scipy': ('http://docs.scipy.org/doc/scipy/reference/', None),
                       'matplotlib': ('http://matplotlib.sourceforge.net/', None)}

내에 conf.py있지만 Python 자체가 아닌 다른 프로젝트에 대한 링크가 작동하지 않는 것 같습니다. 예를 들면

:term:`svg graphics <matplotlib:svg>`

다만 예상되는 추가하지 않고, 인덱스 페이지에 저를 소요 #term-svg앵커를, 그리고 심지어에 대한 용어 찾을 수없는 scipy결정하는 방법을 또는 그림 :ref:S 또는 :term:S는 패키지에 의해 지원됩니다.

어디에서 대한 목표를 지정하는 방법에 대한 지침을 찾을 수 있습니다 :ref:들과 :term:의이야 numpy, scipy그리고 matplotlib?


그 문제에 대해 Sphinx 자체에 어떻게 연결합니까? 첨가

intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None)

:ref:`Intersphinx <intersphinx>`

작동하지 않습니다.


어디에서 대한 목표를 지정하는 방법에 대한 지침을 찾을 수 있습니다 :ref:들과 :term:의이야 numpy, scipy그리고 matplotlib?

이제 모든 , 및을 포함 하는 몇 가지 매핑 이 포함 된 요점있습니다. 에서 직접 이러한 항목을 사용할 수 있어야 합니다 . 이 목록에 추가 할 추가 항목에 대한 제안이있는 사람이 있으면 Gist의 의견에 자유롭게 요청을 게시하십시오.intersphinxnumpyscipymatplotlibintersphinx_mappingconf.py

이 모든 패키지에 대해 fgoudra의 대답에sphobjinv 따라 objects.inv파일 내에서 각 라이브러리 를 검색 하는 사용 하는 것이 좋습니다 . (전체 공개 : 저는의 작성자입니다 sphobjinv.) suggestCLI 인터페이스 모드는 특히 intersphinx 상호 참조를 작성하는 데 필요한 정보를 제공하도록 설계되었습니다.


numpy복잡한. 때로는 완전한 이름이 필요합니다. 예 :

:func:`numpy.cross`

다른 경우 (예를 들어 C 함수의 경우) 함수의 기본 이름 만 참조 할 수 있지만 도메인을 명시 적으로 나타내야합니다. 예 :

:c:func:`PyArray_InnerProduct`

다른 경우에는 사용자 정의 np도메인 을 참조해야 할 수 있습니다 . 예 :

:np:func:`numpy.ma.append`

.NET Framework를 참조하지 않고 올바른 구문이 무엇인지 알 수있는 방법은 없습니다 objects.inv.

 

scipy대략 numpy. 다양한 scipy하위 패키지에 대한 수많은 사용자 정의 도메인을 도입하면 상황이 더욱 복잡해집니다. 예 :

:scipy-optimize:func:`scipy.integrate.newton_cotes`

 

를 들어 matplotlib, 당신이 항상 참조, 예에 (매우 상세)가 제공하는 완전 지정된 개체 이름이 나타납니다 :

:meth:`matplotlib.axes.Axes.plot`

그러나 모든 matplotlib코드 개체는 기본 py도메인 에있는 것처럼 보이므로 다소 단순화됩니다.

 

이 중 하나에 대해 링크를 제대로 구성하는 데 문제가있는 경우 가장 먼저 :obj:다음과 같은 일반적인 역할을 사용합니다 .

:obj:`matplotlib.axes.Axes.plot`

이것은 intersphinx특정 개체가 정의 된 역할에 관계없이 링크 를 구성 하지만, 여전히 관련이없는 기본 도메인을 올바르게 지정해야한다고 생각합니다. 참조가 :obj:역할에서 제대로 작동하지 않으면 개체 이름이나 도메인 어딘가에 오류가있는 것입니다. 두 곳 모두에서 오타를 확인하십시오.


조회 할 인벤토리를 수동으로 지정할 수 있습니다. 예를 들어, 작동 intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None)하지 않는 경우 언제든지 인벤토리를 다운로드하여 매핑에 수동으로 추가 할 수 있습니다 (예 : http://sphinx-doc.org/objects.inv 에서 다운로드하고 문서에 바이너리 파일을 저장하고 경로를 추가) 매핑에서 다음과 같은 결과를 얻을 수 있습니다.

intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', ('objects.inv', ), )

인벤토리 내에 참조가 있는지 확인하려면 sphobjinv python 패키지로 바이너리를 탐색하고 원하는 참조가 어디에 있는지 확인할 수 있습니다.

이것은 문제에 대한 해결책은 아니지만 몇 가지를 디버깅하는 데 도움이 될 수 있습니다.


이것이 여전히 문제가되는 경우 URL 끝에 슬래시를 생략해야합니다.

intersphinx_mapping = {'python': ('http://docs.python.org/2', None),
                       'numpy': ('http://docs.scipy.org/doc/numpy', None),
                       'scipy': ('http://docs.scipy.org/doc/scipy/reference', None),
                       'matplotlib': ('http://matplotlib.sourceforge.net', None)}

상호 참조를 수행하는 방법을 아는 또 다른 방법은 sphobjinv 모듈을 사용하는 것입니다.

You can search local or even remote inventory files (with fuzzy matching). For instance with scipy:

$ sphobjinv suggest -t 90 -u https://docs.scipy.org/doc/scipy/reference/objects.inv "signal.convolve2d"

Remote inventory found.

:py:function:`scipy.signal.convolve2d`
:std:doc:`generated/scipy.signal.convolve2d`

Note that you may need to use :py:func: and not :py:function: (I'd be happy to know why).

참고URL : https://stackoverflow.com/questions/21538983/specifying-targets-for-intersphinx-links-to-numpy-scipy-and-matplotlib

반응형