[issue14846] Change in error when sys.path contains a nonexistent folder (importlib)
Thomas Kluyver
report at bugs.python.org
Fri May 18 01:35:08 CEST 2012
New submission from Thomas Kluyver <takowl at gmail.com>:
I've come across a difference from 3.2 to 3.3 while running the IPython test suite. It occurs when a directory on sys.path has been used for an import, then deleted without being removed from sys.path. Previous versions of Python ignore the nonexistent folder, but in 3.3 a FileNotFound error appears.
This might be by design (errors should never pass silently), but I haven't found it mentioned in the What's New for 3.3.
$ cat import.py
import sys, os, shutil
os.mkdir('foo')
with open('foo/bar.py', 'w'):
pass
sys.path.insert(0, 'foo/')
import bar # Caches a FileFinder for foo/
shutil.rmtree('foo')
import random # Comes later on sys.path
$ python3.2 import.py
$ python3.3 import.py
Traceback (most recent call last):
File "import.py", line 8, in <module>
import random
File "<frozen importlib._bootstrap>", line 1162, in _find_and_load
File "<frozen importlib._bootstrap>", line 1124, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1078, in _find_module
File "<frozen importlib._bootstrap>", line 927, in find_module
File "<frozen importlib._bootstrap>", line 973, in find_module
File "<frozen importlib._bootstrap>", line 1005, in _fill_cache
FileNotFoundError: [Errno 2] No such file or directory: 'foo/'
The last entry in that traceback is calling "_os.listdir(path)".
----------
components: Interpreter Core
messages: 161025
nosy: takluyver
priority: normal
severity: normal
status: open
title: Change in error when sys.path contains a nonexistent folder (importlib)
type: behavior
versions: Python 3.3
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14846>
_______________________________________
More information about the Python-bugs-list
mailing list