Python 用“文件”记录文件;从x导入*;
斯芬克斯的。。automodule::和其他自动功能可用于记录包含来自x import*语句的模块,而不包括来自导入模块的所有文档 编辑: 根据mzjn的观点,只要导入的方法“Python 用“文件”记录文件;从x导入*;,python,python-sphinx,matplotlib,Python,Python Sphinx,Matplotlib,斯芬克斯的。。automodule::和其他自动功能可用于记录包含来自x import*语句的模块,而不包括来自导入模块的所有文档 编辑: 根据mzjn的观点,只要导入的方法“\uuuuu module\uuuuu属性与模块名称不同,就不应该记录它们。但是,对于我的一些模块,它们是 我的MLE只是一个文件test\u doc.py文件,包含以下行: from pylab import * 以及文件: .. automodule:: agpy.test_doc :members: 如果
\uuuuu module\uuuuu
属性与模块名称不同,就不应该记录它们。但是,对于我的一些模块,它们是
我的MLE只是一个文件test\u doc.py
文件,包含以下行:
from pylab import *
以及文件:
.. automodule:: agpy.test_doc
:members:
如果我在测试文件py
中包含此行:
print "beta.__module__:",beta.__module__
我得到了预期的结果:
beta.__module__: None
知道发生了什么吗?我可能在conf.py
中搞砸了什么吗
编辑:根据mzjn的回答,一种变通方法,用于更改那些具有\uuuuuuu模块=None
的函数的\uuuuuuuu模块属性:
import pylab
from pylab import *
for k,v in pylab.__dict__.iteritems():
if hasattr(v,'__module__'):
if v.__module__ is None:
locals()[k].__module__ = 'pylab'
是的,应该行。发件人:
在设置了members选项的automodule指令中,仅记录其\uuuuu module\uuuu
属性等于给定给automodule的模块名称的模块成员。这是为了防止记录导入的类或函数
更新:
问题似乎是许多pylab
成员的\uuu模块
属性是None
(据我所知,在C/Cython模块mtrand
中定义的成员)
mtrand
模块是NumPy的一部分。在幕后,pylab.beta
(以及其他几个函数)是该类的一个方法。我可以将文件问题复制如下:
使用此源(pylabtest.py)
以及此源文档(pylabtest.rst)
pylabtest.html中的Sphinx输出包括beta
和mzjn
但如果
beta.__module__ = "pylab"
添加到pylabtest.py中,只记录了mzjn
谢谢。。。这不起作用,我不明白为什么,但我会看看函数的模块属性是否有问题;对不起,我错过了一个星期。我想你已经发现了问题,知道为什么会发生吗?i、 为什么pylab函数。。。没有父母?无论如何,我接受了你的回答,在我的问题中加入了一个(相当难看的)解决方法。我也想知道为什么会出现这个问题。真奇怪pylab.beta
具有值为None
的\uuuuu模块
属性。但是numpy.random.mtrand.RandomState.beta
甚至没有\uuuuu模块\uuuuu
属性。pylab
中的第一个模块按字母顺序排列
Pylab test
==========
.. automodule:: pylabtest
:members:
beta.__module__ = "pylab"