标签: pydoc

Python的pydoc帮助功能在哪里获取其内容?

我有很多可调用的对象,它们都__doc__正确地填写了字符串,但是对它们运行帮助可以为它们的类提供帮助,而不是基于它的帮助__doc__.

我想改变它,以便在它们上运行帮助产生自定义的帮助,看起来基本上就像我将得到的,如果它们是实际的函数而不是实现的类的实例__call__.

在代码中,我想输出:

class myCallable:
    def __init__(self, doc):
        self.__doc__ = doc

    def __call__(self):
        # do some stuff
        pass

myFunc = myCallable("some doco text")
help(myFunc)
Run Code Online (Sandbox Code Playgroud)

看起来更像是这个的输出:

def myFunc():
    "some doco text"
    # do some stuff
    pass

help(myFunc)
Run Code Online (Sandbox Code Playgroud)

python introspection pydoc

10
推荐指数
1
解决办法
1388
查看次数

让Sphinx从pydoc生成RST类文档

我目前正在将所有现有(不完整)文档迁移到Sphinx.

问题是文档使用Python文档字符串(模块是用C编写的,但可能无关紧要),并且必须将类文档转换为可用于Sphinx的表单.

sphinx.ext.autodoc,但它会自动将当前文档字符串放到文档中.我想基于当前的文档字符串在(RST)中生成源文件,然后我可以手动编辑和改进.

你会如何将文档字符串转换为Sphinx的RST?

python pydoc python-sphinx

7
推荐指数
1
解决办法
3444
查看次数

Python:pydoc 模块可以输出带有相对路径的 HTML 文档吗?

我正在使用 pydoc 模块输出我使用 C API 定义的某些类型的文档。在解释器嵌入到我的 C 程序中之前,我想要记录的类型并不存在,因此我无法使用 pydoc 命令。

我让我的 C 代码调用一个函数,该函数执行如下操作:

d = pydoc.HTMLDoc()
content = d.docmodule(sys.modules["mymodule"])
Run Code Online (Sandbox Code Playgroud)

这可行,但会生成带有硬编码“file:/”链接目标的 HTML 页面。有没有办法使用链接的相对路径?

(额外积分是为了更好地记录 C API 中定义的类型)

html python pydoc

7
推荐指数
1
解决办法
1510
查看次数

pydoc支持python元数据,例如__version__ ='0.1'

我甚至不确定这些东西是正式调用的,但是,Python有元数据,通常位于模块文件的顶部,例如__version__ = '0.1'.

如何找到PyDoc支持的所有列表?

python pydoc

7
推荐指数
1
解决办法
954
查看次数

pydoc/help()可以隐藏继承的类方法和属性的文档吗?

声明从特定类继承的类时:

class C(dict):
    added_attribute = 0
Run Code Online (Sandbox Code Playgroud)

类的文档C列出了所有方法dict(通过help(C)pydoc).

有没有办法从自动生成的文档中隐藏继承的方法(文档字符串可以引用基类,对于非重写方法)?还是不可能?

这将很有用:pydoc列出模块其类之后定义的函数.因此,当类具有非常长的文档时,在呈现模块提供的新功能之前会打印许多不太有用的信息,这使得文档更难以利用(您必须跳过继承方法的所有文档)直到达到所记录模块的特定内容.

python documentation class pydoc

6
推荐指数
1
解决办法
2128
查看次数

如何告诉PyDoc为用户定义的目录生成文档

生成模块文档时,PyDoc在当前目录中创建HTML文档.我真的需要指定另一个目录,它将是生成文档的占位符,而不是调用PyDoc的目录.

python -m pydoc -w <MODULES_DIR>用来生成文档.

这是可能的,如果可能,怎么样?

python pydoc

6
推荐指数
2
解决办法
8577
查看次数

Pydoc搞砸了 - * - 编码:utf-8 - * -

我用Emacs编辑Python脚本,我总是把它放在脚本的开头:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

PEP 0236中建议(至少不要劝阻).

但是,我刚发现pydoc它无法正确识别(忽略)它:

$ pydoc myscript.py
Help on module myscript:

NAME
    myscript - # -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?还是使用的好方法-*- coding: utf-8 -*-

我正在使用Python 2.6

python emacs encoding pydoc

6
推荐指数
1
解决办法
581
查看次数

Pydoc没有看到docstrings?

显然我在这里缺少一些严肃的东西.这是我的测试程序:

"""
Doc and nothing but doc
"""

class TestMe(object):
    """
    class documentation goes here
    """
    def testFunc(self):
        """
        FunctionDoc Goes here
        """
        print "Hello world"

if __name__ =="__main__":
    t=TestMe()
    t.testFunc()
Run Code Online (Sandbox Code Playgroud)

我运行它并打印出"Hello world",natch.但是pydoc.py test.py给出这个:

no Python documentation found for 'test.py'
Run Code Online (Sandbox Code Playgroud)

显然我在这里缺少一些简单的东西,但是什么呢?

--edit-- Per Vishnu的建议我print t.__doc__在文件的最后一行添加了" ",现在运行该文件给出了:

Hello world

    class documentation goes here
Run Code Online (Sandbox Code Playgroud)

但是pydoc仍然没有找到任何文档.

python pydoc

6
推荐指数
1
解决办法
5285
查看次数

deactivate:unset:1:没有这样的哈希表元素:pydoc

我正在尝试设置我的新笔记本电脑的开发环境.安装zsh后我不断收到错误

deactivate:unset:1:没有这样的哈希表元素:pydoc请帮忙.我在zshrc中有以下简单别名:

alias c="clear"
alias gpl="git pull"
alias gps="git push"
alias gc="git commit"
alias gck="git checkout"
alias d="git diff"
alias s="git status".
Run Code Online (Sandbox Code Playgroud)

unix linux shell zsh pydoc

6
推荐指数
1
解决办法
1716
查看次数

Dask 中的 read_sql_table 返回 NoSuchTableError

我有一个使用 pandas 的 read_sql ,它工作正常。然而,当我尝试使用相同的逻辑在 Dask 下重新创建相同的数据帧时。它给了我NoSuchTableError。我确信该表存在于我的 SQL 数据库中。

熊猫#works:

import urllib
import sqlalchemy as sa
import pandas as pd

sql = "SELECT * FROM my_table"
params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};\
                             SERVER=my_server;\
                             DATABASE=db_name;\
                             Trusted_Connection=yes;")
engine = sa.create_engine('mssql+pyodbc:///?odbc_connect=%s' % params)
df = pd.read_sql(sql, engine)
print(df.head())
Run Code Online (Sandbox Code Playgroud)

由于 Dask 使用 sqlalchemy 的完整 URL,我还尝试在 sqlalchemy 中重新创建相同的连接,并且它有效。我只是很困惑为什么它在 Dask 中不起作用。

sqlalchemy #works:

import pyodbc
import sqlalchemy as sal
from sqlalchemy import create_engine

engine = sal.create_engine('mssql+pyodbc://my_server/db_name\
         ?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes')

result = engine.execute("select * from my_table")

for row …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pydoc pandas dask

6
推荐指数
1
解决办法
1041
查看次数