У меня есть скрипт, который использует py2exe для 32-битной Windows Python 2.6, используя Python 2.6.2. Этот сценарий имеет встроенную обработку исключений и корректно работает в 64-разрядных системах Windows 7 и Windows XP в скомпилированном исполняемом формате py2exe без ошибок и проблем.
Однако, когда я запускаю исполняемый файл в 32-разрядной системе Windows 7, я получаю всплывающую ошибку, которая гласит:
Подробнее см. Файл журнала в C: \ path \ to \ directory \ program_name.exe.log.
Когда я иду к этому файлу, он содержит следующую информацию:
Не удалось закрыть в деструкторе файлового объекта:
Ошибка ввода-вывода: [ошибка 0] Ошибка
Файл работает правильно и не имеет никаких проблем, за исключением ошибки, которая регистрируется в каталоге, указанном выше.
Я читал все утро, пытаясь понять, что происходит. Я видел статью базы знаний, Перенаправление STDIN / STDOUT может не работать, если он был запущен из файловой ассоциации , из которой пару лет назад говорили о проблемах с Windows XP и кодами возврата. Кажется, что это может быть проблема того же типа, но в статье говорится, что проблема была решена с помощью исправления.
Когда я запускаю настоящий скрипт Python в системе, которая выдает мне эту ошибку с откомпилированным исполняемым файлом, он работает нормально, без ошибок или исключений вообще.
Почему возникает эта проблема? Я думаю, что это проблема с py2exe, или как 32-разрядная версия Windows 7 обрабатывает коды возврата из исполняемого файла py2exe.