diff -r f1539e7607e4 Lib/site.py --- a/Lib/site.py Sat Mar 19 13:16:52 2016 +0200 +++ b/Lib/site.py Sun Mar 20 15:07:20 2016 +0100 @@ -131,13 +131,12 @@ def _init_pathinfo(): - """Return a set containing all existing directory entries from sys.path""" + """Return a set containing all existing entries from sys.path""" d = set() for dir in sys.path: try: - if os.path.isdir(dir): - dir, dircase = makepath(dir) - d.add(dircase) + dir, dircase = makepath(dir) + d.add(dircase) except TypeError: continue return d diff -r f1539e7607e4 Lib/test/test_site.py --- a/Lib/test/test_site.py Sat Mar 19 13:16:52 2016 +0200 +++ b/Lib/test/test_site.py Sun Mar 20 15:07:20 2016 +0100 @@ -73,9 +73,10 @@ self.assertEqual(os.path.normcase(abs_dir), norm_dir) def test_init_pathinfo(self): + sys.path.extend(("./test.zip", "./testsub.zip/subpach")) dir_set = site._init_pathinfo() for entry in [site.makepath(path)[1] for path in sys.path - if path and os.path.isdir(path)]: + if path]: self.assertIn(entry, dir_set, "%s from sys.path not found in set returned " "by _init_pathinfo(): %s" % (entry, dir_set))