Код, о котором идет речь, может объяснить больше, чем я могу сказать в тексте, я думаю. Я значительно упростила его, чтобы сделать его читабельным, но по сути это то, что я запускаю.
def main():
with tempfile.TemporaryDirectory() as td:
for repo in repos:
subprocess.run("git clone --mirror {} {}".format(os.path.join(td, repo.path), repo.url)
Клонирование прекрасно работает и успешно проходит через весь список. Что не так, что при выходе «with ... as ...» возникает следующая ошибка (трассировка начинается с __exit__ менеджера контекста):
os.unlink(fullname)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\USERNAME\\AppData\\Local\\Temp\\tmp4ew2qffb\\sources\\REPONAME\\objects\\pack\\pack-abd0ff87083dbbcb90f707d8f2d53c730583bb6e.idx'
Запуск сценария от имени администратора тоже не поможет. Что здесь происходит не так?
РЕДАКТИРОВАТЬ: я копался в нем, и получается python 3.7 Очистка TemporaryDirectory не поддерживает очистку файлов только для чтения на Windows.