diff options
author | Brett Cannon <brett@python.org> | 2014-03-21 14:58:33 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2014-03-21 14:58:33 (GMT) |
commit | a00c2407caed1fe61bdd92788f7a8eb27fcff969 (patch) | |
tree | f86c2e40aa7510e084fbd1a165366abe1385aa99 /Lib/importlib | |
parent | 373f0a925bcaed53e7e2eb0406694acb00a03e36 (diff) | |
download | cpython-a00c2407caed1fe61bdd92788f7a8eb27fcff969.zip cpython-a00c2407caed1fe61bdd92788f7a8eb27fcff969.tar.gz cpython-a00c2407caed1fe61bdd92788f7a8eb27fcff969.tar.bz2 |
Issue #20884: Don't assume in importlib.__init__ that __file__ is
defined.
Diffstat (limited to 'Lib/importlib')
-rw-r--r-- | Lib/importlib/__init__.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/importlib/__init__.py b/Lib/importlib/__init__.py index f6adc5c..1bc9947 100644 --- a/Lib/importlib/__init__.py +++ b/Lib/importlib/__init__.py @@ -22,7 +22,12 @@ else: # a second copy of the module. _bootstrap.__name__ = 'importlib._bootstrap' _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 # To simplify imports in test code |