Процесс зомби с использованием xlwings

Когда я использую xlwings для автоматизации работы в Excel, у меня по-прежнему работает процесс EXCEL zoombie, даже если я выхожу из приложения (с помощью wb.Application(wb).quit()).

Таким образом, когда я пытаюсь повторно открыть свой файл Excel, возникают ошибки. Мне нужно вручную убить приложение excel.

редактировать: я использую xlwings 0.7.0


person Coolpix    schedule 31.05.2016    source источник


Ответы (1)


Проблема в том, что wb — это глобальная ссылка на вашу книгу, которая все еще существует даже после выполнения команды quit. Excel видит, что на него ссылаются (через COM), и поэтому отказывается завершить работу должным образом.

На данный момент вы можете вручную очистить объект книги после выхода: del wb. В следующем крупном выпуске xlwings мы также предоставим новую команду Workbook.kill(), которая решит эту проблему.

person Felix Zumstein    schedule 01.06.2016
comment
Спасибо за советы, скоро попробую! Другая проблема. Если я закрою книгу и сразу же открою другую, иногда я получаю сообщение об ошибке. Если мы задержим открытие второй книги (например, с помощью time.sleep(0.05), мы сможем обойти проблему. - person Coolpix; 02.06.2016
comment
Не могли бы вы открыть проблему на GitHub, это намного проще, чем пытаться решить проблему в комментариях здесь... - person Felix Zumstein; 02.06.2016