summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/site.py11
-rw-r--r--Misc/NEWS3
-rwxr-xr-xTools/freeze/freeze.py4
-rw-r--r--Tools/freeze/makeconfig.py2
4 files changed, 16 insertions, 4 deletions
diff --git a/Lib/site.py b/Lib/site.py
index 4fb1058..ded6539 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -364,12 +364,17 @@ def setcopyright():
builtins.credits = _sitebuiltins._Printer("credits", """\
Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information.""")
- here = os.path.dirname(os.__file__)
+ files, dirs = [], []
+ # Not all modules are required to have a __file__ attribute. See
+ # PEP 420 for more details.
+ if hasattr(os, '__file__'):
+ here = os.path.dirname(os.__file__)
+ files.extend(["LICENSE.txt", "LICENSE"])
+ dirs.extend([os.path.join(here, os.pardir), here, os.curdir])
builtins.license = _sitebuiltins._Printer(
"license",
"See http://www.python.org/download/releases/%.5s/license" % sys.version,
- ["LICENSE.txt", "LICENSE"],
- [os.path.join(here, os.pardir), here, os.curdir])
+ files, dirs)
def sethelper():
diff --git a/Misc/NEWS b/Misc/NEWS
index 2a4d533..6a448b9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -169,6 +169,9 @@ Tests
Tools/Demos
-----------
+- Issue #16047: Fix module exception list and __file__ handling in freeze.
+ Patch by Meador Inge.
+
- Issue #11824: Consider ABI tags in freeze. Patch by Meador Inge.
- Issue #20535: PYTHONWARNING no longer affects the run_tests.py script.
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index d0e3c3f..e0c6c2c 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -365,6 +365,10 @@ def main():
else:
mf.load_file(mod)
+ # Alias "importlib._bootstrap" to "_frozen_importlib" so that the
+ # import machinery can bootstrap.
+ mf.modules["_frozen_importlib"] = mf.modules["importlib._bootstrap"]
+
# Add the main script as either __main__, or the actual module name.
if python_entry_is_main:
mf.run_script(scriptfile)
diff --git a/Tools/freeze/makeconfig.py b/Tools/freeze/makeconfig.py
index 018992c..fabaace 100644
--- a/Tools/freeze/makeconfig.py
+++ b/Tools/freeze/makeconfig.py
@@ -3,7 +3,7 @@ import sys
# Write the config.c file
-never = ['marshal', 'imp', '_ast', '__main__', 'builtins',
+never = ['marshal', '_imp', '_ast', '__main__', 'builtins',
'sys', 'gc', '_warnings']
def makeconfig(infp, outfp, modules, with_ifdef=0):