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