我有一个使用py2exe for Windows 32位Python 2.6,使用Python 2.6.2的脚本。此脚本内置异常处理,并在其编译的py2exe可执行格式的Windows 7 64位系统和Windows XP系统上正常运行,没有错误也没有问题。
但是,当我在Windows 7 32位系统上运行可执行文件时,出现弹出错误,内容如下:
有关详细信息,请参阅“C:\ path \ to \ directory \ program_name.exe.log”中的日志文件。
当我转到该文件时,它包含以下信息:
文件对象析构函数中的关闭失败:
IOError:[Errno 0]错误
文件正确运行且完全没有问题,但记录在上面列出的目录中的错误除外。
我整个上午一直在阅读,试图了解正在发生的事情。几年前,我看到了一篇知识库文章 STDIN/STDOUT Redirection May Not Work If Started from a File Association ,讨论了Windows XP和返回代码的问题。这似乎可能是同一类型的问题,但文章说该问题已通过修补程序解决。
当我在系统上运行实际的Python脚本时,它使用已编译的可执行文件给出了这个错误,它运行正常,没有任何错误或例外。
为什么会出现这个问题?我认为这是py2exe的一个问题,或者Windows 7 32位如何处理来自py2exe可执行文件的返回代码。