python编译exe执行时报错:OSError:[WinError6]句柄无效
pythonstudio编写python的图形界面应用非常容易,配合python自身强大功能,能实现很多带图形界面的非常复杂功能。pythonstudio还可以一键编译为exe可执行程序。
运行exe程序时,程序可以启动,但有时候会弹出报错信息:OSError:[WinError6]句柄无效,
如下图:
【解决方法】
原因是print输出没有重定向,无法正常输出。pythonstudio自动生成的Project1.py一般如下:
from glcl import *
from Unit1 import *def main():Application.Initialize()Application.Title = 'Project1'Application.MainFormOnTaskbar = TrueApplication.Icon.LoadFromFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Extractor_Icon.ico"))MainForm = Form1(Application)MainForm.Show()FreeConsole()Application.Run()MainForm.Free()if __name__ == '__main__':main()
引起错误的语句是:
FreeConsole(),将其用#注释掉即可。或者删除Unit1.py脚本中print语句。如下:
# FreeConsole() -----注释掉此句即可。
Application.Run()
MainForm.Free()