You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本经PyInstaller转exe后疑似崩溃,求助排查解决

解决PyInstaller打包exe运行崩溃的问题

我来帮你排查这个问题,你的脚本逻辑本身没毛病,但打包成exe后运行崩溃,大概率是路径适配或者打包参数的问题,咱们一步步来解决:

  • 修正路径获取逻辑
    你用sys.path[0]来获取目录,但PyInstaller打包后的exe运行时,会把程序临时解压到系统的临时目录,sys.path[0]指向的是这个临时目录,而不是exe所在的实际目录,这会导致文件列表获取出错,甚至直接崩溃。把路径获取的代码改成这样:

    import os
    import sys
    # 获取exe所在的实际目录
    current_dir = os.path.dirname(os.path.abspath(sys.executable))
    onlyfiles = [f for f in os.listdir(current_dir) if os.path.isfile(os.path.join(current_dir, f))]
    while True:
        print(onlyfiles)
        x = input()
        if x == "y":
            continue
        else:
            break
    

    这样不管是脚本直接运行,还是打包成exe后运行,都能正确定位到程序所在的目录。

  • 检查打包参数
    如果你打包时用了-w(无控制台窗口)参数,那你的脚本里的input()会因为没有控制台环境直接崩溃。打包时去掉-w参数,用默认的控制台模式打包,命令是:

    pyinstaller your_script.py
    

    要是你确实需要无窗口模式,那得改用其他输入方式(比如弹窗输入),但你的脚本依赖控制台输入,所以优先用控制台模式打包。

  • 查看具体错误信息
    如果上面两步还没解决问题,打开命令提示符,切换到exe所在的目录,直接输入exe文件名运行它,比如:

    your_exe_name.exe
    

    这时候控制台会打印出崩溃的具体错误日志(比如模块缺失、路径错误等),根据日志就能精准定位问题。

  • 清理缓存后重新打包
    有时候PyInstaller的缓存文件会导致奇怪的问题,打包前先删除build、dist文件夹和对应的.spec文件,再重新打包:
    Windows下命令:

    rd /s /q build dist
    del your_script.spec
    pyinstaller your_script.py
    

    类Unix系统下:

    rm -r build dist
    rm your_script.spec
    pyinstaller your_script.py
    

按照这几步操作,应该就能解决你的exe崩溃问题了。

内容的提问来源于stack exchange,提问作者rei2001

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 11:12:58