Определение целей для межсинхронных ссылок на numpy, scipy и matplotlib

Следуя документации по настройке ссылок документации 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: s и :term: s в numpy , scipy и matplotlib ?


В этом отношении, как я могу связать себя с самим Сфинксом? Добавление

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

а также

 :ref:`Intersphinx <intersphinx>` 

не работает.

2 Solutions collect form web for “Определение целей для межсинхронных ссылок на numpy, scipy и matplotlib”

Где я могу найти инструкции по указанию целей для :ref: s и :term: s в numpy , scipy и matplotlib ?

У меня есть Gist с несколькими intersphinx отображениями, которые теперь включают все numpy , scipy и matplotlib . Вы должны иметь возможность использовать эти записи непосредственно в intersphinx_mapping , в вашем conf.py Если у кого-то есть предложения по внесению дополнительных записей в этот список, пожалуйста, не стесняйтесь отправлять запросы в комментарии Gist.

Для всех этих пакетов на каждый ответ fgoudra я настоятельно рекомендую использовать sphobjinv для декодирования и проверки синтаксиса файла objects.inv для каждой библиотеки. (Полное раскрытие: я являюсь автором sphobjinv .) Каждая строка (декодированных) objects.inv дает вам всю информацию, необходимую для создания рабочей справки intersphinx ; см. документацию по sphobjinv .


numpy сложный. Иногда вам требуется полное имя, например:

 :func:`numpy.cross` 

В других случаях (например, для функций C) вы можете просто ссылаться на базовое имя функции, но вы должны явно указать домен, например:

 :c:func:`PyArray_InnerProduct` 

Однако иногда вам может потребоваться ссылка на пользовательский домен np , например:

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

Нет никакого способа узнать, что такое правильный синтаксис, не консультируясь с objects.inv .

scipy примерно так же непроницаем, как и numpy . Все это осложняется введением многочисленных пользовательских доменов для различных scipy подпакетов, например:

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

Для matplotlib , что вам всегда нужно предоставить (довольно многословное) полностью указанное имя объекта в ссылке, например:

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

Однако все matplotlib кода matplotlib видимому, находятся в домене py по умолчанию, что несколько упрощает.

Для любого из них, если у вас возникли проблемы с созданием ссылки для правильной сборки, первое, на что я вернусь, – это использовать общий :obj: role, например:

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

Это создаст intersphinx ссылку независимо от роли, в которой был определен конкретный объект, хотя я думаю, что вам все же нужно правильно указать любой соответствующий домен, intersphinx от стандартного. Если ссылка не работает должным образом с помощью :obj: role, тогда в имени объекта или в домене есть ошибка. Проверьте наличие опечаток в обоих местах.

Можно вручную указать, какой инвентарь посмотреть. Например, если intersphinx_mapping['sphinx'] = ('http://sphinx-doc.org/', None) не работает, вы всегда можете загрузить инвентарь и вручную добавить его к сопоставлению (например, загрузить с http: //sphinx-doc.org/objects.inv , сохраните двоичный файл в ваших документах и ​​добавьте путь к нему в сопоставлении, это даст что-то вроде:

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

Чтобы проверить, существует ли ссылка в инвентаре, вы можете изучить двоичный файл с пакетом python sphobjinv и проверить, где именно вы хотите.

Это может быть не решение вашей проблемы, но может помочь отладить некоторые вещи.

  • Numpy: Как избавиться от минимумов вдоль оси = 1, учитывая показатели - эффективным образом?
  • Как вернуть стоимость, grad как кортеж для функции fmin_cg scipy
  • неустойчивый результат от scipy.cluster.kmeans
  • Вычисление производной функции кумулятивной плотности в Python
  • Обновление начального условия в решателе ODE каждый раз
  • Фиксация кривой в Scipy с 3D-данными и параметрами
  • Не удалось импортировать подмодули из scipy в AWS Lambda
  • ImportError: нет модуля с именем array_import ----- scipy
  • Python - лучший язык программирования в мире.