mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
bpo-42133: update parts of the stdlib to fall back to __spec__.loader
when __loader__
is missing (#22929)
This commit is contained in:
parent
7c01f1540f
commit
825ac38332
6 changed files with 59 additions and 14 deletions
11
Lib/site.py
11
Lib/site.py
|
@ -105,8 +105,15 @@ def makepath(*paths):
|
|||
def abs_paths():
|
||||
"""Set all module __file__ and __cached__ attributes to an absolute path"""
|
||||
for m in set(sys.modules.values()):
|
||||
if (getattr(getattr(m, '__loader__', None), '__module__', None) not in
|
||||
('_frozen_importlib', '_frozen_importlib_external')):
|
||||
loader_module = None
|
||||
try:
|
||||
loader_module = m.__loader__.__module__
|
||||
except AttributeError:
|
||||
try:
|
||||
loader_module = m.__spec__.loader.__module__
|
||||
except AttributeError:
|
||||
pass
|
||||
if loader_module not in {'_frozen_importlib', '_frozen_importlib_external'}:
|
||||
continue # don't mess with a PEP 302-supplied __file__
|
||||
try:
|
||||
m.__file__ = os.path.abspath(m.__file__)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue