如何无需GitHub本地分享Streamlit应用,让同事无代码启动?是否可生成exe/bat?
涉密本地Streamlit应用分享方案
关于exe/bat文件的可行性
完全可行,以下是三种适配你需求的实用方案:
方案1:BAT一键启动脚本(Windows快速方案)
适合不想折腾工具的场景,步骤简单:
- 把你的Streamlit项目(含所有
.py文件、requirements.txt)打包成压缩包发给同事 - 同事先执行
pip install -r requirements.txt安装依赖(如果同事没Python,你可以提前打包一个便携版Python环境一起发送) - 你创建一个
.bat文件,内容如下:
@echo off cd /d "D:\解压后的项目文件夹路径" # 替换为同事电脑上的实际路径 streamlit run app.py pause
- 同事收到后双击BAT文件,直接启动本地应用,无需手动敲代码
方案2:Nativefier封装成桌面exe(跨平台)
你提到的Nativefier可以用,但需指向本地服务地址而非Streamlit Sharing链接,调整后的步骤:
- 安装Nativefier(需先安装Node.js):
npm install -g nativefier
- 本地启动你的Streamlit应用,确认地址为
http://localhost:8501 - 执行打包命令(以Windows为例,mac/linux替换
platform参数):
nativefier --name "涉密数据分析工具" "http://localhost:8501" --platform windows
- 把生成的exe、Streamlit项目、依赖环境和启动BAT一起发给同事,同事先启动BAT开启本地服务,再双击exe就能看到桌面化的应用界面
方案3:PyInstaller打包成独立exe(无Python依赖)
如果想让同事完全不用管Python环境,推荐这个方案:
- 安装PyInstaller:
pip install pyinstaller
- 编写启动脚本
start_app.py:
import streamlit.web.cli as stcli import sys def main(): sys.argv = ["streamlit", "run", "app.py", "--server.port=8501"] stcli.main() if __name__ == "__main__": main()
- 执行打包命令:
pyinstaller --onefile --windowed start_app.py
- 把
dist文件夹里的exe和你的Streamlit项目文件放在一起发给同事,双击exe直接启动应用,全程不需要Python环境
内容的提问来源于stack exchange,提问作者Tong
相关产品推荐
相关产品推荐

