如何阻止CMD生成的Python转exe程序运行后自动关闭及相关排查
问题解答
关于auto-py-to-exe打包提示torch未找到但exe运行正常
这是pyinstaller(auto-py-to-exe基于它)的常见情况,torch的目录结构比较特殊,打包器扫描依赖时可能没正确识别到torch的完整路径,但实际打包时已经把torch的核心文件包含进去了,所以exe能正常运行。如果想消除这个提示,可以:
- 在auto-py-to-exe的「Additional Files」选项中,手动添加你的torch安装目录(一般在Python环境的
Lib\site-packages\torch路径下) - 或者切换到命令行打包,加上
--paths "你的torch安装路径"参数
终端自动关闭的问题处理
- 如果是Console Based模式打包的exe,脚本运行结束后终端确实会自动关闭。要让它等待按键再退出,直接在脚本末尾加代码:
或者用# 等待用户按回车键退出 input("运行结束,按回车键退出...")os.system("pause"),前提是先导入os模块。 - 如果终端没自动关闭,大概率是脚本运行过程中卡住了,或者有未捕获的异常导致程序挂起,和dll的关系不大——真要是dll出问题,程序一般会直接报错崩溃,不会一直挂着。
卸载重装torch后仍有库报错的解决思路
- 先确认torch版本和你的Python版本、系统(CPU/GPU)完全匹配:比如GPU版torch需要对应你的CUDA版本,别装错了。可以在py脚本里运行
print(torch.cuda.is_available())验证GPU版是否生效。 - 打包环境要和你运行py脚本的环境一致:比如你用虚拟环境开发的,就用虚拟环境打开auto-py-to-exe打包,别混用系统环境。
- 如果是打包时提示某些库缺失,在auto-py-to-exe的「Hidden Imports」选项里,添加报错提示的缺失库名,比如常见的
torch._C、torch._C._nn这类torch内部模块。
内容的提问来源于stack exchange,提问作者cansado
相关产品推荐
相关产品推荐

