Merge issue #15833: don't raise an exception if importlib can't write
byte-compiled files. This fixes a regression introduced by 3.3. Patch by Charles-François Natali.
This commit is contained in:
commit
744faddae8
|
@ -1066,17 +1066,17 @@ class SourceFileLoader(FileLoader, SourceLoader):
|
|||
except FileExistsError:
|
||||
# Probably another Python process already created the dir.
|
||||
continue
|
||||
except PermissionError:
|
||||
# If can't get proper access, then just forget about writing
|
||||
# the data.
|
||||
except OSError as exc:
|
||||
# Could be a permission error, read-only filesystem: just forget
|
||||
# about writing the data.
|
||||
_verbose_message('could not create {!r}: {!r}', parent, exc)
|
||||
return
|
||||
try:
|
||||
_write_atomic(path, data, _mode)
|
||||
_verbose_message('created {!r}', path)
|
||||
except (PermissionError, FileExistsError):
|
||||
# Don't worry if you can't write bytecode or someone is writing
|
||||
# it at the same time.
|
||||
pass
|
||||
except OSError as exc:
|
||||
# Same as above: just don't write the bytecode.
|
||||
_verbose_message('could not create {!r}: {!r}', path, exc)
|
||||
|
||||
|
||||
class SourcelessFileLoader(FileLoader, _LoaderBasics):
|
||||
|
|
|
@ -158,6 +158,10 @@ Tests
|
|||
Build
|
||||
-----
|
||||
|
||||
- Issue #15833: Fix a regression in 3.3 that resulted in exceptions being
|
||||
raised if importlib failed to write byte-compiled files. This affected
|
||||
attempts to build Python out-of-tree from a read-only source directory.
|
||||
|
||||
- Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError
|
||||
after 2801bf875a24 (see #15801).
|
||||
|
||||
|
|
3711
Python/importlib.h
3711
Python/importlib.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue