Issue #20884: Don't assume in importlib.__init__ that __file__ is

defined.
This commit is contained in:
Brett Cannon 2014-03-21 10:58:33 -04:00
parent 373f0a925b
commit a00c2407ca
2 changed files with 8 additions and 1 deletions

View File

@ -22,7 +22,12 @@
# a second copy of the module. # a second copy of the module.
_bootstrap.__name__ = 'importlib._bootstrap' _bootstrap.__name__ = 'importlib._bootstrap'
_bootstrap.__package__ = 'importlib' _bootstrap.__package__ = 'importlib'
_bootstrap.__file__ = __file__.replace('__init__.py', '_bootstrap.py') try:
_bootstrap.__file__ = __file__.replace('__init__.py', '_bootstrap.py')
except NameError:
# __file__ is not guaranteed to be defined, e.g. if this code gets
# frozen by a tool like cx_Freeze.
pass
sys.modules['importlib._bootstrap'] = _bootstrap sys.modules['importlib._bootstrap'] = _bootstrap
# To simplify imports in test code # To simplify imports in test code

View File

@ -21,6 +21,8 @@ Core and Builtins
Library Library
------- -------
- Issue #20884: Don't assume that __file__ is defined on importlib.__init__.
- Issue #20879: Delay the initialization of encoding and decoding tables for - Issue #20879: Delay the initialization of encoding and decoding tables for
base32, ascii85 and base85 codecs in the base64 module, and delay the base32, ascii85 and base85 codecs in the base64 module, and delay the
initialization of the unquote_to_bytes() table of the urllib.parse module, to initialization of the unquote_to_bytes() table of the urllib.parse module, to