0

Python2.7を使用しています。help() を入力して「modules」と入力すると、次のメッセージが表示されます

>>> help()
Welcome to Python 2.7! This is the online help utility.
...
help> modules
Please wait a moment while I gather a list of all available modules...

その後、一連の警告が表示されます

Warning: cannot register existing type 'GtkWidget'
...
Warning: cannot add class private field to invalid type '<invalid>'
...

その後、すべてがハングアップします... SIGKILL を送信するために 2 番目のリモート セッションを開始する必要がありました。

明らかに何かがおかしいのですが、私が最も驚いたのは、Web にアクセスして情報を収集するところです。

Python のヘルプ ドキュメントはローカルに保存されていませんか? Web に出ないようにするにはどうすればよいですか? オンライン ヘルプではなく、通常のヘルプが必要です。

4

2 に答える 2

5

このhelp()コマンドはインターネット上で検索しません。「オンライン」とは、対話的に使用できることを意味するだけです。ドキュメントでは、あいまいさの少ない「組み込みヘルプシステム」と呼んでいます。システムで使用可能なモジュールを確認するために、すべてを走査し、すべてのPYTHONPATHモジュールをインポートしようとします。

モジュールのリストを取得するために使用されるソース コードは次のとおりです ( Lib/pydoc.pyPython ソースの下にあります)。

    def listmodules(self, key=''):
        if key:
            self.output.write('''
Here is a list of matching modules.  Enter any module name to get more help.

''')
            apropos(key)
        else:
            self.output.write('''
Please wait a moment while I gather a list of all available modules...

''')
            modules = {}
            def callback(path, modname, desc, modules=modules):
                if modname and modname[-9:] == '.__init__':
                    modname = modname[:-9] + ' (package)'
                if modname.find('.') < 0:
                    modules[modname] = 1
            def onerror(modname):
                callback(None, modname, None)
            ModuleScanner().run(callback, onerror=onerror)
            self.list(modules.keys())
            self.output.write('''
Enter any module name to get more help.  Or, type "modules spam" to search
for modules whose descriptions contain the word "spam".
''')

ModuleScannerクラスが組み込みモジュールと見つかったモジュールを単純にトラバースする場合、この関数は最後にインポーター オブジェクトpkgutil.walk_packagesのメソッドを呼び出します。iter_modules組み込みのインポーターは、インターネットからのモジュールのインポートをサポートしていないため、インターネットは検索されません。カスタムインポーターをインストールすると、インターネット調査help() がトリガーされる可能性があります。

利用可能なモジュールが多数ある場合、この操作には時間がかかる場合があります。一部のモジュールは、インポートにかなりの時間がかかる場合があります (たとえばnumpyscipyロードに数秒かかる場合があります)。

于 2013-08-13T21:05:39.317 に答える
0

コンソールexport PYTHONDOCS=/usr/share/doc/python2/html/で、Python がヘルプを検索する場所を決定します。

于 2013-08-13T21:03:14.843 に答える