3

help() を広範囲に使用して、新しいモジュールへの道を容易にする方法を探しています。

私が現在抱えている問題は、出力は非常に便利ですが、対話型インタープリターでスクロールするのが難しいということです。私が探しているのは、R がドキュメントを処理する方法 (R PROject を使用する場合) と同様の方法で Python モジュールを探索する方法です。

R は、パラメーター、関数をスクロールできる単一の HTML ファイルを出力します。Windowsでpython 2.7を使用しています。

コンソールで探しているものを正確に出力するpydocを見つけましたが、インストールされたすべてのパッケージを文書化する「Webサーバー」から離れて、単一のパッケージを提供して開くだけにする方法が完全にはわかりません。 help(x) と入力すると、html ページで、通常はインタープリターで出力される内容が出力されます。

どんな助けでも大歓迎です。

4

3 に答える 3

3

pydoc を使用して html ファイルを作成し、デフォルトのブラウザーに表示するモジュール名を含む文字列を受け取る短い関数を作成しました。

Web サーバーをセットアップするのではなく、ファイルを Web ブラウザーにロードするだけです。

import subprocess
import os
import tempfile
import sys
import time

def show_help(module):
    """ Create and show HTML page of module documentation 

        Pass module as a string
    """

    # Create temporary directory to store documentation in
    with tempfile.TemporaryDirectory() as temp_folder:
        orignal_cwd = os.getcwd()

        # Change working directory to temporary folder
        os.chdir(temp_folder)

        # Create HTML page of doc
        subprocess.call(["pydoc", "-w", module], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)       

        filepath = os.path.join(temp_folder, module + ".html")

        # Reset working directory
        os.chdir(orignal_cwd)

        # Open default program to view HTML files
        if sys.platform.startswith('darwin'):
            subprocess.call(('open', filepath), stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
        elif os.name == 'nt':
            os.startfile(filepath)
        elif os.name == 'posix':
            subprocess.call(('xdg-open', filepath), stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

        # Sleep for 2 seconds so browser can open before deleting file
        time.sleep(2)

Linuxでpython3.4でテストしましたが、正常に動作しますが、Windowsではチェックしていません。

これをモジュールとしてインタープリターにインポートしてから、「 module nameshow_help("module name") 」が文字列としてのモジュール名であるドキュメントを表示するために使用できます。など。show_help("os")

于 2014-12-20T21:53:03.333 に答える
1

を使用pydoc.render_docしてファイルを作成できhtmlます。

import pydoc
str_help = pydoc.render_doc(str)
with open("str_doc.html", "w") as doc_file:
    doc_file.write(str_help)

次に、このファイルをWeb ブラウザーで開くことができます。

import webbrowser
webbrowser.open("file:///path/to/your/doc_file.html")
于 2014-12-29T10:36:53.477 に答える