openpyxl не закрывает файл

Простой код для примера:

import openpyxl
path = *путь к файлу*
wb = openpyxl.load_workbook(path)
wb.close()

Если после этого открываю файл в экселе, то эксель не дает сохранить никакие изменения в файле из-за конфликта доступа.

Код запускаю в idle. Возможность редактировать файл в экселе возвращается, только если закрыть idle.

Есть ли возможность с этим как-то бороться?

Если у кого-то та же проблема, по итогу помог вариант, предложенный CrazyElf:

import openpyxl
import gc
path = *путь к файлу*
wb = openpyxl.load_workbook(path)
gc.collect()
wb.close()

Ответы (2 шт):

Автор решения: 0Z0SK0

Вероятнее всего это происходит потому что, openpyxl открывает несколько файловых дескрипторов, но при этом built-in функция _get_source() возвращает лишь один для закрытия.

Загружайте файл через память и используйте режим read_only.

import openpyxl
path = *путь к файлу*
memoryCopy = None
with open(path, "rb") as f:
    memoryCopy = io.BytesIO(f.read())

wb = load_workbook(memoryCopy, read_only=True)
→ Ссылка
Автор решения: CrazyElf

Вам может помочь удаление переменной wb из памяти и принудительная сборка мусора после этого:

import gc

...
wb.close()
del wb
gc.collect()
→ Ссылка