程序可运行但启动时弹出含OMP错误的控制台窗口
解决py2exe打包后弹出OMP错误控制台窗口的问题
问题回顾
你遇到的这个问题我之前帮朋友排查过,简直一模一样:程序本身能正常运行,但每次启动都会弹出控制台窗口,显示如下错误:
OMP: Warning #178: Function GetModuleHandleEx failed: OMP: System error #126: The specified module could not be found.
哪怕已经把MSVCP90.DLL和LIBIOMP5MD.DLL放到了安装目录,甚至尝试捕获错误,控制台还是会弹出来,而且错误日志是空的,确实挺闹心的。
解决方案
直接在你的py2exe打包配置中添加dll_excludes参数,排除这两个DLL文件即可解决问题。具体配置代码如下:
'py2exe': { "dll_excludes": ["MSVCP90.dll", "libiomp5md.dll"] }
为什么这能解决问题?
这是因为py2exe在打包时会自动扫描并打包它判定为依赖的DLL,但对于这两个OpenMP相关的库,打包过程中可能会引入版本不匹配或者路径冲突的问题——程序启动时会优先尝试加载py2exe打包进去的DLL版本,结果找不到正确的模块。通过手动排除这两个DLL,程序就会直接加载你放在安装目录里的(或者系统已安装的)正确版本,自然就不会再弹出这个错误控制台了。
内容的提问来源于stack exchange,提问作者BoomerSchmirtz
相关产品推荐
相关产品推荐

