简体   繁体   中英

Python: Sphinx Import Error: No module

I have my source codes in the directory - /usr/share/jupiter_api/jupiter_api/services/v1

Sphinx Files -

  1. /usr/share/jupiter-doc/index.rst -> calls jupiter_api.rst
  2. /usr/share/jupiter-doc/api/jupiter_api.rst

jupiter_api.rst file generates auto document.

.. automodule:: accounts
   :members:

/usr/share/jupiter-doc/api/conf.py

sys.path.append(os.path.abspath('/jupiter_api/jupiter_api/servicesi/v1/'))

when I run make clean and make html, I get the below error message -

Removing everything under '_build'...

[ /usr/share/jupiter-doc/api ]
root@d1piap2077 > make html
Running Sphinx v1.6.2
making output directory...
/usr/lib/python2.7/site-packages/sphinx/util/requests.py:72: UserWarning: 
Some links may return broken results due to being unable to check the Server 
Name Indication (SNI) in the returned SSL cert against the hostname in the 
url requested. Recommended to install requests-2.4.1+.
'Some links may return broken results due to being unable to '
loading pickled environment... not yet created
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 1 added, 0 changed, 0 removed
reading sources... [100%] jupiter_api
WARNING: /usr/share/jupiter-doc/api/jupiter_api.rst:15: (WARNING/2) autodoc: 
failed to import module u'accounts'; the following exception was raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 657, in 
import_object
    __import__(self.modname)
ImportError: No module named accounts
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] jupiter_api
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, 1 warning.

Build finished. The HTML pages are in _build/html.

You probably need

sys.path.insert(0, os.path.abspath('../jupiter_api/jupiter_api/services/v1/'))

You can debug this with a print(sys.path) in your conf.py.

ah wait your conf.py is under jupiter_doc/api/ but index.rst is one level higher. But you have your Makefile at the level of the conf.py, then you do need one more '../' . But I guess the master_doc in your conf.py is jupiter_api ? why aren't index.rst and conf.py at same top level in your doc ?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM