diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py --- a/Lib/importlib/_bootstrap.py +++ b/Lib/importlib/_bootstrap.py @@ -142,7 +142,9 @@ def _write_atomic(path, data): - """Function to write data to a path atomically.""" + """Best-effort function to write data to a path atomically. + Be prepared to handle a FileExistsError if concurrent writing of the + temporary file is attempted.""" # id() is used to generate a pseudo-random filename. path_tmp = '{}.{}'.format(path, id(path)) fd = _os.open(path_tmp, _os.O_EXCL | _os.O_CREAT | _os.O_WRONLY, 0o666) @@ -597,8 +599,9 @@ return try: _write_atomic(path, data) - except PermissionError: - # Don't worry if you can't write bytecode. + except (PermissionError, FileExistsError): + # Don't worry if you can't write bytecode or someone is writing + # it at the same time. pass

AltStyle によって変換されたページ (->オリジナル) /