[Python-Dev] Peculiar import code in pickle.py (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Tue Jul 13 17:34:18 CEST 2010


On Tue, 13 Jul 2010 11:25:23 -0400 Alexander Belopolsky <alexander.belopolsky at gmail.com> wrote:

When pickle.py needs to import a module by name, it goes through a peculiar dance of

import(module, level=0) mod = sys.modules[module] As far as I can tell, unless builtins.import is overridden or sys.modules clobbered by user code, the above should be equivalent to mod = import(module, level=0)

Only for top-level modules:

import("distutils.core", level=0) <module 'distutils' from '/home/antoine/py3k/__svn__/Lib/distutils/__init__.py'> sys.modules["distutils.core"] <module 'distutils.core' from '/home/antoine/py3k/__svn__/Lib/distutils/core.py'>

Regards

Antoine.



More information about the Python-Dev mailing list