Barry A. Warsaw added the comment:

On Nov 20, 2012, at 04:51 PM, Eric V. Smith wrote:

>I agree it's a bug. And the fix looks good to me.

Thanks.

>Having said that: I haven't looked at the import.c version to verify what is
>happening. Does the test pass under 3.2?

Yep.  See below.  When you take a look at the path_hooks iteration loop,
you'll see why.

-----snip snip-----
import sys

sys.path.insert(0, None)
sys.path_importer_cache.pop(None, None)
sys.modules.pop('email', None)

import email
print(email)
-----snip snip-----

% python3.2 /tmp/foo.py
<module 'email' from '/usr/lib/python3.2/email/__init__.py'>
% python3.3 /tmp/foo.py
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1271, in _path_importer_cache
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/foo.py", line 7, in <module>
    import email
  File "<frozen importlib._bootstrap>", line 1561, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1519, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1473, in _find_module
  File "<frozen importlib._bootstrap>", line 1308, in find_module
  File "<frozen importlib._bootstrap>", line 1284, in _get_loader
  File "<frozen importlib._bootstrap>", line 1273, in _path_importer_cache
  File "<frozen importlib._bootstrap>", line 1254, in _path_hooks
TypeError: 'NoneType' object is not iterable
Error in sys.excepthook:
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1271, in _path_importer_cache
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 58, in 
apport_excepthook
    from cStringIO import StringIO
  File "<frozen importlib._bootstrap>", line 1561, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1519, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1473, in _find_module
  File "<frozen importlib._bootstrap>", line 1308, in find_module
  File "<frozen importlib._bootstrap>", line 1284, in _get_loader
  File "<frozen importlib._bootstrap>", line 1273, in _path_importer_cache
  File "<frozen importlib._bootstrap>", line 1254, in _path_hooks
TypeError: 'NoneType' object is not iterable

Original exception was:
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1271, in _path_importer_cache
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/foo.py", line 7, in <module>
    import email
  File "<frozen importlib._bootstrap>", line 1561, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1519, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1473, in _find_module
  File "<frozen importlib._bootstrap>", line 1308, in find_module
  File "<frozen importlib._bootstrap>", line 1284, in _get_loader
  File "<frozen importlib._bootstrap>", line 1273, in _path_importer_cache
  File "<frozen importlib._bootstrap>", line 1254, in _path_hooks
TypeError: 'NoneType' object is not iterable

----------
title: Cryptic traceback when sys.path[0] is None -> Cryptic traceback when 
sys.path

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16514>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to