Sphinx autodoc не может импортировать модуль - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь задокументировать проект, используя Sphinx, и столкнулся с проблемой, когда только некоторые модули импортируются из папки.Моя структура проекта выглядит следующим образом:

Project
|
|--Main
|    |--Scripts
|          __init__.py
|          libsmop.py
|          conv_table.py
|          f_discrim.py
|          recipes.py
|          ...

Когда я пытаюсь запустить make html, libsmop и recipes импортируются без каких-либо проблем, однако conv_table и f_discrim получают следующую ошибку:

WARNING: autodoc: failed to import module u'conv_table' from module u'Scripts'; the following exception was raised:No module named conv_table

Я не думаю, что это мой конфигурационный файл, потому что он находит все файлы, когда я запускаю sphinx-apidoc -o _rst Main/Scripts, и я подтвердил, что они появляются в результате Scripts.rst file.

Почему autodoc находит некоторые модули, но не другие?

Редактировать: conv_table.py имеет такую ​​форму:

import re
import numpy as np

"""
conv_table dictionary at the bottom of this file maps from matlab functions
to their python equivalents.
"""

def get_args(line,separator=",", open_char='(', close_char=')'):
    """Returns the arguments of line

    >>> get_args('ones(3,1,length(arr))')

...
< a bunch of function definitions>
...

conv_table = {... < a very big dictionary > ...}

1 Ответ

0 голосов
/ 22 февраля 2019

Вы хотите проверить путь загрузки модуля, в соответствии с Sphinx docs :

Для Sphinx (фактически, интерпретатор Python, который выполняет Sphinx), чтобы найти ваш модульДолжно быть импортируемым.Это означает, что модуль или пакет должен находиться в одном из каталогов на sys.path - соответственно измените ваш sys.path в файле конфигурации.

Также было бы полезно узнать, как ваш __init__.py в каталоге Scripts выглядит и как выглядит модуль conv_table.

...