Stefan Krah <stefan-use...@bytereef.org> added the comment: What happens is that if self._fill_cache() is called, cache_module='pep3147' and cache={'pep3147'}. Then 'cache_module in cache' is true and the function returns:
loader('pep3147', './pep3147/__init__.py') Otherwise, find_module() returns None, control is handed back to find_module_path() ... loader = _PyObject_CallMethodId(importer, &PyId_find_module, "O", fullname) ... and then to find_module_path_list(), where the search continues: for (i = 0; i < npath; i++) { path = PyList_GetItem(search_path_list, i); ... search_path_list = ['.', '', ... ], but now i==1, so the dot is disregarded and '' is used as the path, leading to the dotless result. I don't know the contract for importlib's find_module, but it seems to me that either find_module should handle this case or we have an unwanted interaction between C and Python code. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14080> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com