"не удается импортировать модуль" при запуске примера test_data sphinxcontrib-matlabdomain в Ubuntu 18.04 - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь запустить пример / демонстрацию, приведенную на sphinxcontrib-matlabdomain pypi site , но модуль autodoc не может импортировать файлы примеров matlab.

Я устанавливаю среду сфинкса с помощью sphinx-quickstart.ОС Ubuntu 18.04.Моя структура каталогов выглядит следующим образом

root
|--------test_data
|                |--MyHandleClass.m
|
|
|--------conf.py
|--------Makefile
|--------index.rst

Соответствующие части моего config.py:

import os
:
:
extensions = [
    'sphinxcontrib.matlab',
    'sphinx.ext.autodoc',
]
:
:
matlab_src_dir = os.path.abspath('.')
print "matlab_src_dir: ", matlab_src_dir

Первый файл скопирован из примера

Test Data
=========
This is the test data module.

.. automodule:: test_data

:mod:`test_data` is a really cool module.

My Handle Class
---------------
This is the handle class definition.

.. autoclass:: MyHandleClass

    :show-inheritance:
    :members: 

Вывод при запуске make html равен

Running Sphinx v1.8.5
matlab_src_dir:  /home/xxxxx/Desktop/sphinxtest
WARNING: while setting up extension sphinx.ext.autodoc: directive 'automodule' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoclass' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoexception' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autodata' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autofunction' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'automethod' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoattribute' is already registered, it will be overridden
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoinstanceattribute' is already registered, it will be overridden
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: [] 0 added, 1 changed, 0 removed
reading sources... [100%] test_data                                                                                                    
WARNING: autodoc: failed to import module u'test_data'; the following exception was raised:
No module named test_data
WARNING: don't know which module to import for autodocumenting u'MyHandleClass' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name)
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] test_data                                                                                                     
generating indices... genindex
writing additional pages... search
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded, 10 warnings.

The HTML pages are in _build/html.

Мне нравится верить, что я следовал инструкциям к тройнику.Но я что-то здесь упускаю?

1 Ответ

0 голосов
/ 18 июня 2019

Порядок расширений важен, и это может быть не совсем понятно из документации. Поэтому файл conf.py должен выглядеть следующим образом.

import os
:
:
extensions = [
    'sphinx.ext.autodoc',
    'sphinxcontrib.matlab',
]
:
:
matlab_src_dir = os.path.abspath('.')
print "matlab_src_dir: ", matlab_src_dir
...