如何使用Pydoc创建文档?

时间:2012-10-23 23:02:17

标签: python documentation python-3.x documentation-generation pydoc

我正在尝试从我的模块中创建一个文档。我使用Python 3.2.3从Windows 7的命令行中使用了pydoc

python "<path_to_pydoc_>\pydoc.py" -w myModule

这导致我的shell填充了文本,我的模块中的每个文件都有一行,说:

no Python documentation found for '<file_name>'

就好像Pydoc试图获取我的文件的文档,但我想自动创建它。我找不到使用Google的好教程。有没有人有关于如何使用Pydoc的任何提示?

如果我尝试使用

从一个文件创建文档
python ... -w myModule\myFile.py, it says "wrote myFile.html", and when I open it, it has one line of text saying:

# ../myModule/myFile.py

此外,它在我的计算机上有一个指向文件本身的链接,我可以点击它,它会在我的网络浏览器上显示文件内的内容。

4 个答案:

答案 0 :(得分:77)

人们可能觉得有用的另一件事......确保从模块名称中删除“.py”。例如,如果您尝试在“ original.py ”中生成'原始'的文档:

yourcode_dir$ pydoc -w original.py
no Python documentation found for 'original.py'

yourcode_dir$ pydoc -w original
wrote original.html

答案 1 :(得分:70)

pydoc非常适合生成文档,但必须首先编写文档。您必须在源代码中包含文档字符串,如RocketDonkey在评论中所述:

"""
This example module shows various types of documentation available for use
with pydoc.  To generate HTML documentation for this module issue the
command:

    pydoc -w foo

"""

class Foo(object):
    """
    Foo encapsulates a name and an age.
    """
    def __init__(self, name, age):
        """
        Construct a new 'Foo' object.

        :param name: The name of foo
        :param age: The ageof foo
        :return: returns nothing
        """
        self.name = name
        self.age = age

def bar(baz):
    """
    Prints baz to the display.
    """
    print baz

if __name__ == '__main__':
    f = Foo('John Doe', 42)
    bar("hello world")

第一个docstring提供了使用pydoc创建文档的说明。有一些不同类型的文档字符串的示例,因此您可以看到它们在使用pydoc生成时的外观。

答案 2 :(得分:31)

正如RocketDonkey建议的那样,你的模块本身需要一些文档字符串。

例如,在myModule/__init__.py

"""
The mod module
"""

您还希望使用

myModule/*.py中的每个文件生成文档
pydoc myModule.thefilename

确保生成的文件与主模块文档文件中引用的文件匹配。

答案 3 :(得分:-7)

使用pydoc.doc()可以显示docstring,可以是类,模块等。