Terry J. Reedy added the comment: Given the current (3.3) imp.py docstring """This module provides the components needed to build your own __import__ function. Undocumented functions are obsolete. In most cases it is preferred you consider using the importlib module's functionality over this module. """ I wonder why it is being imported on startup. Is this an obsolete holdover.
--- The patch solves the problem of importing a non-existing load_dynamic, but - elif type_ == C_EXTENSION: + elif type_ == C_EXTENSION and load_dynamic is not None: return load_dynamic(name, filename, file) With this change, an attempt to import a C_EXTENSION file will fall through to else: msg = "Don't know how to import {} (type code {})".format(name, type_) raise ImportError(msg, name=name) Jeffery: does your m68k-atari-mint have no C_EXTENSION files, so that this will never be a problem? On my Windows system, _tkinter is one such, with the following outcome. import imp imp.load_dynamic >>> imp.load_module('tk2', *imp.find_module('_tkinter')) Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> imp.load_module('tk2', *imp.find_module('_tkinter')) File "C:\Programs\Python33\lib\imp.py", line 164, in load_module return load_dynamic(name, filename, file) TypeError: 'NoneType' object is not callable Or is this not a problem because deprecated imp.load_module is never actually used? ___ Brett: by 'expected exception', do you mean the one above? or the one that is caught by the patch? Another question: load_dynamic has a public name but is un-documented. Does that make it private enough that we can freely rebind it to None? Perhaps it does not matter since we are only doing this on machines where Python does not even start, so we won't disable a working imp.load_dynamic call if there is one somewhere (including the stdlib). ___ If imp.load_dynamic is private, then its import into imp can be removed once deprecated load_module is removed, making this issue moot. ---------- nosy: +terry.reedy _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue16880> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com