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

将含Streamlit的Python脚本转换为.exe文件失败求助

Streamlit脚本转.exe文件解决方案

问题原因

直接打包原Streamlit脚本时,PyInstaller无法正确触发Streamlit的Web服务启动逻辑,导致程序执行后直接退出,出现窗口闪一下就消失的情况。

解决步骤

1. 编写启动脚本

创建一个名为run_app.py的新脚本,用来调用Streamlit命令启动你的应用,代码如下:

import subprocess
import sys
import os

# 获取当前程序所在目录
if getattr(sys, 'frozen', False):
    app_dir = os.path.dirname(sys.executable)
else:
    app_dir = os.path.dirname(os.path.abspath(__file__))

# 指定你的Streamlit主脚本文件名(替换成你自己的脚本名,比如main.py)
main_script = os.path.join(app_dir, 'main.py')

# 启动Streamlit服务并打开浏览器
subprocess.run([
    sys.executable, '-m', 'streamlit', 'run', main_script,
    '--server.headless=false', '--browser.gatherUsageStats=false'
])

2. 用auto-py-to-exe打包启动脚本

  • 打开auto-py-to-exe,选择run_app.py作为目标脚本
  • 选择打包模式(推荐One File或Directory均可)
  • 切换到Additional Files选项卡,点击Add Files,选择你的原Streamlit脚本(比如main.py),设置Destination为.(表示和exe同目录)
  • 点击Convert .py to .exe完成打包

3. 运行测试

打包完成后,将生成的.exe文件和原Streamlit脚本放在同一目录下,双击exe即可自动打开浏览器加载你的Streamlit应用。

额外注意事项

  • 如果使用One File模式,确保打包时已将原Streamlit脚本添加到额外文件中,否则exe找不到脚本会报错
  • 若打包后出现依赖缺失,可在auto-py-to-exe的Hidden Imports中手动添加缺失的模块(比如streamlit相关的子模块)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:45:35