如何向未安装Python的用户分发.ipynb格式Jupyter脚本并实现一键运行输出
无本地Python环境的Jupyter Notebook脚本批量交付解决方案
方案1:单机可执行文件封装(完全离线可用)
- 首先在你本地完成脚本全量依赖配置,执行
jupyter nbconvert --to script 你的脚本名称.ipynb命令,将ipynb格式转为普通Python脚本 - 用
pyinstaller工具将转换后的Python脚本、所有依赖库、预设配置打包为单文件可执行程序,Windows环境生成exe文件,Mac环境生成dmg文件 - 打包时可以用轻量GUI库
tkinter添加简单的交互界面,比如参数输入框、文件选择按钮,用户拿到文件后双击即可运行,按照提示操作就能得到输出结果,全程不需要安装任何程序,也不需要懂Python知识
方案2:私有化Jupyter服务部署(适合多用户集中使用)
- 自行准备一台服务器,在服务端安装好Python运行环境、脚本所需全部依赖,以及Jupyter Hub服务
- 提前将你编写的Notebook脚本上传到服务端,给所有目标用户开通低权限账号,权限仅开放该脚本的运行权限,隐藏所有代码编辑入口
- 用户只需要用任意设备的浏览器访问你部署的服务地址,登录账号后点击运行按钮即可,运行结果直接在浏览器展示,本地不需要做任何环境配置
方案3:轻量网页应用转换(用户体验最优)
- 用
streamlit或gradio工具将Notebook核心逻辑转换为网页应用,仅需要添加少量交互组件代码即可完成转换,不需要重构原有代码 - 把转换好的网页应用部署在你的自有服务器上,用户直接访问对应网页,按照提示输入参数或上传需要处理的文件,点击运行按钮即可得到结果,还可以直接下载生成的输出文件
通用优化建议
- 所有方案都可以提前隐藏全部Python代码逻辑,用户仅能看到必要的交互提示和运行结果,完全感知不到底层技术实现
- 如果脚本运行有固定的输入格式要求,可以提前做好格式校验和错误提示,用户操作不符合要求时直接弹出易懂的中文提示,不需要排查代码问题
内容的提问来源于stack exchange,提问作者Ganesh Khadke
相关产品推荐
相关产品推荐

