Python Shutil.copytree: [WinError 32] Процесс не может получить доступ к файлу, поскольку он используется другим процессPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Shutil.copytree: [WinError 32] Процесс не может получить доступ к файлу, поскольку он используется другим процесс

Сообщение Anonymous »

На GitHub я делюсь exe-файлом, сгенерированным PyInstaller (file1.exe). Идея заключается в автоматическом процессе обновления при наличии новой версии файла. При каждом запуске file1.exe программа проверяет наличие новой версии на GitHub:

Код: Выделить всё

response = requests.get("https://api.github.com/repos/...releases/latest")
latestVersion = response.json()["tag_name"]
Если последняя версия новее текущей, появится окно сообщения с вопросом, следует ли применить обновление.
Моя идея — зарегистрировать функцию atexit, которая запускает другой скрипт Python (updateloader.exe) в качестве подпроцесса, который загружает новую версию с GitHub и копирует ее в папку file1.exe (перезаписывает file1.exe):
file1:< /p>

Код: Выделить всё

...
atexit.register(updateloader)
sys.exit()
...
def updateloader():
subprocess.run("updateloader.exe")
updateloader.exe:

Код: Выделить всё

...
shutil.copytree("C:\Users\xy\Downloads\file1.exe", "C:\Users\xy\folder\file1.exe", dirs_exist_ok=True)

Я получаю следующее исключение:
('C:\Users\xy\Downloads\file1.exe', 'C:\Users\xy\folder\file1. exe', '[WinError 32] Процесс не может получить доступ к файлу, поскольку он используется другим процессом'). Если я закрываю file1.exe вручную и запускаю updateloader.exe, дерево копирования работает без ошибок.
Есть ли у кого-нибудь решение этой проблемы? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/784 ... le-because
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»