Index: python/Lib/pydoc.py =================================================================== --- python/Lib/pydoc.py (revision 59291) +++ python/Lib/pydoc.py (working copy) @@ -1816,7 +1816,7 @@ modname = modname[:-9] + ' (package)' if find(modname, '.') < 0: modules[modname] = 1 - ModuleScanner().run(callback) + ModuleScanner().run(callback, onerror=lambda modname: callback(None, modname, None)) self.list(modules.keys()) self.output.write(''' Enter any module name to get more help. Or, type "modules spam" to search @@ -1852,7 +1852,7 @@ class ModuleScanner: """An interruptible scanner that searches module synopses.""" - def run(self, callback, key=None, completer=None): + def run(self, callback, key=None, completer=None, onerror=None): if key: key = lower(key) self.quit = False seen = {} @@ -1867,7 +1867,7 @@ if find(lower(modname + ' - ' + desc), key) >= 0: callback(None, modname, desc) - for importer, modname, ispkg in pkgutil.walk_packages(): + for importer, modname, ispkg in pkgutil.walk_packages(onerror=onerror): if self.quit: break if key is None: