https://github.com/python/cpython/commit/ee521e8ac19ad012ebc4e1b3e71b369988a9b9f8
commit: ee521e8ac19ad012ebc4e1b3e71b369988a9b9f8
branch: main
author: Steve Dower <[email protected]>
committer: zooba <[email protected]>
date: 2026-08-24T20:19:30+01:00
summary:

gh-148750: Unfreeze encodings module to avoid import errors with zipped stdlib 
(GH-156183)

(Reverts fixes applied as part of gh-145278)

files:
A 
Misc/NEWS.d/next/Core_and_Builtins/2026-08-21-14-38-06.gh-issue-148750.xBijjR.rst
M Makefile.pre.in
M PCbuild/_freeze_module.vcxproj
M PCbuild/_freeze_module.vcxproj.filters
M Python/frozen.c
M Tools/build/freeze_modules.py

diff --git a/Makefile.pre.in b/Makefile.pre.in
index d3d24a13898d992..cc7a27e5c7be474 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1661,11 +1661,6 @@ FROZEN_FILES_IN = \
                Lib/zipimport.py \
                Lib/abc.py \
                Lib/codecs.py \
-               Lib/encodings/__init__.py \
-               Lib/encodings/aliases.py \
-               Lib/encodings/utf_8.py \
-               Lib/encodings/_win_cp_codecs.py \
-               Lib/encodings/_iconv_codecs.py \
                Lib/io.py \
                Lib/_collections_abc.py \
                Lib/_sitebuiltins.py \
@@ -1692,11 +1687,6 @@ FROZEN_FILES_OUT = \
                Python/frozen_modules/zipimport.h \
                Python/frozen_modules/abc.h \
                Python/frozen_modules/codecs.h \
-               Python/frozen_modules/encodings.h \
-               Python/frozen_modules/encodings.aliases.h \
-               Python/frozen_modules/encodings.utf_8.h \
-               Python/frozen_modules/encodings._win_cp_codecs.h \
-               Python/frozen_modules/encodings._iconv_codecs.h \
                Python/frozen_modules/io.h \
                Python/frozen_modules/_collections_abc.h \
                Python/frozen_modules/_sitebuiltins.h \
@@ -1746,21 +1736,6 @@ Python/frozen_modules/abc.h: Lib/abc.py 
$(FREEZE_MODULE_DEPS)
 Python/frozen_modules/codecs.h: Lib/codecs.py $(FREEZE_MODULE_DEPS)
        $(FREEZE_MODULE) codecs $(srcdir)/Lib/codecs.py 
Python/frozen_modules/codecs.h
 
-Python/frozen_modules/encodings.h: Lib/encodings/__init__.py 
$(FREEZE_MODULE_DEPS)
-       $(FREEZE_MODULE) encodings $(srcdir)/Lib/encodings/__init__.py 
Python/frozen_modules/encodings.h
-
-Python/frozen_modules/encodings.aliases.h: Lib/encodings/aliases.py 
$(FREEZE_MODULE_DEPS)
-       $(FREEZE_MODULE) encodings.aliases $(srcdir)/Lib/encodings/aliases.py 
Python/frozen_modules/encodings.aliases.h
-
-Python/frozen_modules/encodings.utf_8.h: Lib/encodings/utf_8.py 
$(FREEZE_MODULE_DEPS)
-       $(FREEZE_MODULE) encodings.utf_8 $(srcdir)/Lib/encodings/utf_8.py 
Python/frozen_modules/encodings.utf_8.h
-
-Python/frozen_modules/encodings._win_cp_codecs.h: 
Lib/encodings/_win_cp_codecs.py $(FREEZE_MODULE_DEPS)
-       $(FREEZE_MODULE) encodings._win_cp_codecs 
$(srcdir)/Lib/encodings/_win_cp_codecs.py 
Python/frozen_modules/encodings._win_cp_codecs.h
-
-Python/frozen_modules/encodings._iconv_codecs.h: 
Lib/encodings/_iconv_codecs.py $(FREEZE_MODULE_DEPS)
-       $(FREEZE_MODULE) encodings._iconv_codecs 
$(srcdir)/Lib/encodings/_iconv_codecs.py 
Python/frozen_modules/encodings._iconv_codecs.h
-
 Python/frozen_modules/io.h: Lib/io.py $(FREEZE_MODULE_DEPS)
        $(FREEZE_MODULE) io $(srcdir)/Lib/io.py Python/frozen_modules/io.h
 
diff --git 
a/Misc/NEWS.d/next/Core_and_Builtins/2026-08-21-14-38-06.gh-issue-148750.xBijjR.rst
 
b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-21-14-38-06.gh-issue-148750.xBijjR.rst
new file mode 100644
index 000000000000000..0f2388f2a53f70a
--- /dev/null
+++ 
b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-21-14-38-06.gh-issue-148750.xBijjR.rst
@@ -0,0 +1,2 @@
+:mod:`encodings` is no longer frozen, due to issues importing submodules
+when using a zipped standard library.
diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj
index 246a07785168161..3cd930e6d8e66d9 100644
--- a/PCbuild/_freeze_module.vcxproj
+++ b/PCbuild/_freeze_module.vcxproj
@@ -317,31 +317,6 @@
       <IntFile>$(IntDir)codecs.g.h</IntFile>
       
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\codecs.h</OutFile>
     </None>
-    <None Include="..\Lib\encodings\__init__.py">
-      <ModName>encodings</ModName>
-      <IntFile>$(IntDir)encodings.g.h</IntFile>
-      
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.h</OutFile>
-    </None>
-    <None Include="..\Lib\encodings\aliases.py">
-      <ModName>encodings.aliases</ModName>
-      <IntFile>$(IntDir)encodings.aliases.g.h</IntFile>
-      
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.aliases.h</OutFile>
-    </None>
-    <None Include="..\Lib\encodings\utf_8.py">
-      <ModName>encodings.utf_8</ModName>
-      <IntFile>$(IntDir)encodings.utf_8.g.h</IntFile>
-      
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings.utf_8.h</OutFile>
-    </None>
-    <None Include="..\Lib\encodings\_win_cp_codecs.py">
-      <ModName>encodings._win_cp_codecs</ModName>
-      <IntFile>$(IntDir)encodings._win_cp_codecs.g.h</IntFile>
-      
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings._win_cp_codecs.h</OutFile>
-    </None>
-    <None Include="..\Lib\encodings\_iconv_codecs.py">
-      <ModName>encodings._iconv_codecs</ModName>
-      <IntFile>$(IntDir)encodings._iconv_codecs.g.h</IntFile>
-      
<OutFile>$(GeneratedFrozenModulesDir)Python\frozen_modules\encodings._iconv_codecs.h</OutFile>
-    </None>
     <None Include="..\Lib\io.py">
       <ModName>io</ModName>
       <IntFile>$(IntDir)io.g.h</IntFile>
diff --git a/PCbuild/_freeze_module.vcxproj.filters 
b/PCbuild/_freeze_module.vcxproj.filters
index 35082f57f54e9d8..72f36691f4a143d 100644
--- a/PCbuild/_freeze_module.vcxproj.filters
+++ b/PCbuild/_freeze_module.vcxproj.filters
@@ -558,21 +558,6 @@
     <None Include="..\Lib\codecs.py">
       <Filter>Python Files</Filter>
     </None>
-    <None Include="..\Lib\encodings\__init__.py">
-      <Filter>Python Files</Filter>
-    </None>
-    <None Include="..\Lib\encodings\aliases.py">
-      <Filter>Python Files</Filter>
-    </None>
-    <None Include="..\Lib\encodings\utf_8.py">
-      <Filter>Python Files</Filter>
-    </None>
-    <None Include="..\Lib\encodings\_win_cp_codecs.py">
-      <Filter>Python Files</Filter>
-    </None>
-    <None Include="..\Lib\encodings\_iconv_codecs.py">
-      <Filter>Python Files</Filter>
-    </None>
     <None Include="..\Lib\io.py">
       <Filter>Python Files</Filter>
     </None>
diff --git a/Python/frozen.c b/Python/frozen.c
index 03ee612252343d8..9433d90c15e2eca 100644
--- a/Python/frozen.c
+++ b/Python/frozen.c
@@ -46,11 +46,6 @@
 #include "frozen_modules/zipimport.h"
 #include "frozen_modules/abc.h"
 #include "frozen_modules/codecs.h"
-#include "frozen_modules/encodings.h"
-#include "frozen_modules/encodings.aliases.h"
-#include "frozen_modules/encodings.utf_8.h"
-#include "frozen_modules/encodings._win_cp_codecs.h"
-#include "frozen_modules/encodings._iconv_codecs.h"
 #include "frozen_modules/io.h"
 #include "frozen_modules/_collections_abc.h"
 #include "frozen_modules/_sitebuiltins.h"
@@ -82,11 +77,6 @@ static const struct _frozen stdlib_modules[] = {
     /* stdlib - startup, without site (python -S) */
     {"abc", _Py_M__abc, (int)sizeof(_Py_M__abc), false},
     {"codecs", _Py_M__codecs, (int)sizeof(_Py_M__codecs), false},
-    {"encodings", _Py_M__encodings, (int)sizeof(_Py_M__encodings), true},
-    {"encodings.aliases", _Py_M__encodings_aliases, 
(int)sizeof(_Py_M__encodings_aliases), false},
-    {"encodings.utf_8", _Py_M__encodings_utf_8, 
(int)sizeof(_Py_M__encodings_utf_8), false},
-    {"encodings._win_cp_codecs", _Py_M__encodings__win_cp_codecs, 
(int)sizeof(_Py_M__encodings__win_cp_codecs), false},
-    {"encodings._iconv_codecs", _Py_M__encodings__iconv_codecs, 
(int)sizeof(_Py_M__encodings__iconv_codecs), false},
     {"io", _Py_M__io, (int)sizeof(_Py_M__io), false},
 
     /* stdlib - startup, with site */
diff --git a/Tools/build/freeze_modules.py b/Tools/build/freeze_modules.py
index b29cc730ca8b24a..a866336fa78879e 100644
--- a/Tools/build/freeze_modules.py
+++ b/Tools/build/freeze_modules.py
@@ -50,11 +50,13 @@
     ('stdlib - startup, without site (python -S)', [
         'abc',
         'codecs',
-        '<encodings>',
-        'encodings.aliases',
-        'encodings.utf_8',
-        'encodings._win_cp_codecs',
-        'encodings._iconv_codecs',
+        # gh-148750: Partially freezing encodings causes import errors of
+        # submodules when using a zipped standard library.
+        #'<encodings>',
+        #'encodings.aliases',
+        #'encodings.utf_8',
+        #'encodings._win_cp_codecs',
+        #'encodings._iconv_codecs',
         'io',
         ]),
     ('stdlib - startup, with site', [

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to