Skip to content

Commit f4d6db6

Browse files
Fix up early-imported frozen modules.
1 parent 6aaba14 commit f4d6db6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

Lib/importlib/_bootstrap.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,16 @@ def _setup_module(cls, module):
841841
origname = vars(module).pop('__origname__', None)
842842
assert origname, 'see PyImport_ImportFrozenModuleObject()'
843843
spec.loader_state.origname = origname
844+
if not getattr(spec.loader_state, 'filename', None):
845+
# Note that this happens early in runtime initialization.
846+
# So sys._stdlib_dir isn't set yet...
847+
filename, pkgdir = cls._resolve_filename(origname, ispkg)
848+
if filename:
849+
module.__file__ = filename
850+
if pkgdir:
851+
spec.submodule_search_locations.insert(0, pkgdir)
852+
module.__path__.insert(0, pkgdir)
853+
spec.loader_state.filename = filename or None
844854

845855
@classmethod
846856
def _resolve_filename(cls, fullname, alias=None, ispkg=False):

0 commit comments

Comments
 (0)