Issue #7367: Fix pkgutil.walk_paths to skip directories whose
contents cannot be read.
diff --git a/Lib/pkgutil.py b/Lib/pkgutil.py
index 2d88568..51da0b1 100644
--- a/Lib/pkgutil.py
+++ b/Lib/pkgutil.py
@@ -191,8 +191,11 @@
yielded = {}
import inspect
-
- filenames = os.listdir(self.path)
+ try:
+ filenames = os.listdir(self.path)
+ except OSError:
+ # ignore unreadable directories like import does
+ filenames = []
filenames.sort() # handle packages before same-named modules
for fn in filenames:
@@ -205,7 +208,12 @@
if not modname and os.path.isdir(path) and '.' not in fn:
modname = fn
- for fn in os.listdir(path):
+ try:
+ dircontents = os.listdir(path)
+ except OSError:
+ # ignore unreadable directories like import does
+ dircontents = []
+ for fn in dircontents:
subname = inspect.getmodulename(fn)
if subname=='__init__':
ispkg = True