Freeze assumes that all built-in modules are part of the Python core.
This is not necessarily the case. It is possible to create a Python
binary which contains built-in extension modules. Therefore
checkextensions should be used for all unknown and builtin modules.
(Sjoerd Mullender)
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index 0cdacd0..15e9e14 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -338,13 +338,15 @@
# search for unknown modules in extensions directories (not on Windows)
addfiles = []
addmoddefns = [] # Windows list of modules.
- if unknown:
+ if unknown or (not win and builtins):
if not win:
addfiles, addmods = \
- checkextensions.checkextensions(unknown, extensions)
+ checkextensions.checkextensions(unknown+builtins,
+ extensions)
for mod in addmods:
- unknown.remove(mod)
- builtins = builtins + addmods
+ if mod in unknown:
+ unknown.remove(mod)
+ builtins.append(mod)
else:
# Do the windows thang...
import checkextensions_win32