Sphinx doesn't find Python packages when using autodoc

主宰稳场 提交于 2019-12-21 07:24:38

问题


I'm trying to create documentation for test Python project before doing it for the real project. My system : Win7 64 bit, python 2.7.5 64 bit.

My project name is testDoc. It includes python pakage, named t, which includes 2 modules t1 and t2 and __init__.py.

__init__.py contains:

import t1
import t2

t1.py contains:

'''
Created on 27  2013

@author: 
'''

class MyClass(object):
    '''
    Hi
    '''


    def __init__(self,selfparams):
        '''
        Constructor
        '''
        pass

To create docs I run in the command line in testDoc:

sphinx-apidoc -A "me" -F -o docs .

Sphinx creates many files and it's ok according to Sphinx docs. Then, conf.py is modified

sys.path.insert(0, os.path.abspath(absolute path to testDoc))

I enter docs folder and type

make html

and get the following erroneous output:

Making output directory...
Running Sphinx v1.1.3
loading pickled environment... not yet created
building [html]: targets for 2 source files that are out of date
updating environment: 2 added, 0 changed, 0 removed
reading sources... [ 50%] index
reading sources... [100%] t
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\sphinx\ext\autodoc.py", line 321, in impor
t_object
    __import__(self.modname)
ImportError: No module named t.__init__
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\sphinx\ext\autodoc.py", line 321, in impor
t_object
    __import__(self.modname)
ImportError: No module named t.t1
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\sphinx\ext\autodoc.py", line 321, in impor
t_object
    __import__(self.modname)
ImportError: No module named t.t2

...testDoc\t\docs\t.rst:7: WARNING: a
autodoc can't import/find module 't.__init__', it reported error: "No module name
d t.__init__", please check your spelling and sys.path
...testDoc\t\docs\t.rst:15: WARNING:
autodoc can't import/find module 't.t1', it reported error: "No module named t.t
1", please check your spelling and sys.path
t...testDoc\t\docs\t.rst:23: WARNING:
autodoc can't import/find module 't.t2', it reported error: "No module named t.t
2", please check your spelling and sys.path
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 50%] index
writing output... [100%] t

writing additional files... (0 module code pages) genindex search
copying static files... done
dumping search index... done
dumping object inventory... done
build succeeded, 3 warnings.

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

What's wrong? Thanks.


回答1:


I don't know what the "absolute path to testDoc" is, but from the Sphinx output I can see that the testDoc directory structure is testDoc/t/docs. The docs directory is where conf.py is.

For the module search path to be set up properly, you need to go two levels up from conf.py:

sys.path.insert(0, os.path.abspath("../.."))


来源:https://stackoverflow.com/questions/17907609/sphinx-doesnt-find-python-packages-when-using-autodoc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!