Am 01.02.2013 01:42, schrieb Nick Coghlan:
Yep, looks like a bug in the bootstrapping, failing to set __loader__
properly.

It also has the effect that reload does not work:

Type "help", "copyright", "credits" or "license" for more information.
>>> import imp
>>> import math
>>> imp.reload(math)
<module 'math' (built-in)>
>>> import signal
>>> imp.reload(signal)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python33-64\lib\imp.py", line 252, in reload
    return module.__loader__.load_module(name)
AttributeError: 'module' object has no attribute '__loader__'
>>>

However, I also think the current handling of the "no __loader__
attribute" case is a separate bug - since we generally aim to tolerate
non-modules in sys.modules (albeit somewhat grudgingly), importlib
should probably be using "getattr(mod, '__loader__', None)" rather than
assuming the attribute will always be present.

Thomas


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to