[英]Sphinx doesn't find Python packages when using autodoc
I'm trying to create documentation for test Python project before doing it for the real project.在为真正的项目做之前,我正在尝试为测试 Python 项目创建文档。 My system : Win7 64 bit, python 2.7.5 64 bit.
我的系统:Win7 64 位,python 2.7.5 64 位。
My project name is testDoc .我的项目名称是testDoc 。 It includes python pakage, named t , which includes 2 modules t1 and t2 and
__init__.py
.它包括名为t 的python 包,其中包括 2 个模块t1和t2以及
__init__.py
。
__init__.py
contains: __init__.py
包含:
import t1
import t2
t1.py contains: t1.py 包含:
'''
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 :要创建文档,我在testDoc的命令行中运行:
sphinx-apidoc -A "me" -F -o docs .
Sphinx creates many files and it's ok according to Sphinx docs. Sphinx 创建了许多文件,根据 Sphinx 文档,它没问题。 Then, conf.py is modified
然后,修改conf.py
sys.path.insert(0, os.path.abspath(absolute path to testDoc))
I enter docs folder and type我进入docs文件夹并输入
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.
谢谢。
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
.我不知道“testDoc 的绝对路径”是什么,但是从 Sphinx 输出中我可以看到
testDoc
目录结构是testDoc/t/docs
。 The docs
directory is where conf.py
is. docs
目录是conf.py
所在的conf.py
。
For the module search path to be set up properly, you need to go two levels up from conf.py
:为了正确设置模块搜索路径,您需要从
conf.py
向上conf.py
:
sys.path.insert(0, os.path.abspath("../.."))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.