diff options
author | Brett Cannon <brett@python.org> | 2013-03-17 22:48:16 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2013-03-17 22:48:16 (GMT) |
commit | 3e2fe05e62e061032d81becb2f9ef1a8def54f63 (patch) | |
tree | 8f60f2cc6a1bf78a8a94aea7051cfb98cc826352 /Lib/imp.py | |
parent | b271727bad803ef50fdef185eeda24222fba4f25 (diff) | |
download | cpython-3e2fe05e62e061032d81becb2f9ef1a8def54f63.zip cpython-3e2fe05e62e061032d81becb2f9ef1a8def54f63.tar.gz cpython-3e2fe05e62e061032d81becb2f9ef1a8def54f63.tar.bz2 |
Issue #16880: _imp.load_dynamic() is not defined on a platform that
does not support dynamic loading (e.g. Atari), so make sure that imp
doesn't assume it always exists.
Patch by Christian Heimes.
Diffstat (limited to 'Lib/imp.py')
-rw-r--r-- | Lib/imp.py | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -7,9 +7,14 @@ functionality over this module. """ # (Probably) need to stay in _imp from _imp import (lock_held, acquire_lock, release_lock, - load_dynamic, get_frozen_object, is_frozen_package, + get_frozen_object, is_frozen_package, init_builtin, init_frozen, is_builtin, is_frozen, _fix_co_filename) +try: + from _imp import load_dynamic +except ImportError: + # Platform doesn't support dynamic loading. + load_dynamic = None # Directly exposed by this module from importlib._bootstrap import new_module @@ -160,7 +165,7 @@ def load_module(name, file, filename, details): return load_source(name, filename, file) elif type_ == PY_COMPILED: return load_compiled(name, filename, file) - elif type_ == C_EXTENSION: + elif type_ == C_EXTENSION and load_dynamic is not None: return load_dynamic(name, filename, file) elif type_ == PKG_DIRECTORY: return load_package(name, filename) |