Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用“文件”记录文件;从x导入*;_Python_Python Sphinx_Matplotlib - Fatal编程技术网

Python 用“文件”记录文件;从x导入*;

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: 如果

斯芬克斯的。。automodule::和其他自动功能可用于记录包含来自x import*语句的模块,而不包括来自导入模块的所有文档

编辑: 根据mzjn的观点,只要导入的方法“
\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"