create/distribute 基于 Jupyter Notebook/JupterLab 的独立应用程序的最佳方式?

Best way to create/distribute a stand alone app based on Jupyter Notebook/JupterLab?

我为神经科学实验室正在使用的数据分析管道构建了一个相当复杂的图形用户界面。我在 Jupyter Notebook 中使用 Python 使用 ipywidgets 和各种交互式绘图库(例如 bokeh)构建了它。它基本上只是现有 Python 分析包的 GUI,但许多研究人员没有任何或足够的编程技能来使用它,因此需要一个 GUI。

问题在于这是一个相当复杂的设置过程。你必须安装 anaconda,安装一堆库,启动 Jupyter notebook 服务器等。这个安装过程对于技术水平最低的人来说是不可行的。

如何尽可能接近 "download and double-click the installer" 类型的设置来打包和交付我的 Jupyter Notebook 应用程序?对于非技术人员来说,它需要很容易。新的 JupyterLab 在这里提供什么吗?我可以通过某种方式将其打包为 Electron 应用程序吗?

你试过conda constructor了吗?

  • 它创建一个双击 + 按照步骤安装程序,它安装 python、conda 和指定的 conda 包。
  • 以这种方式安装 Jupyter 还会在 windows 中创建一个开始菜单条目以启动 Jupyter 服务器。
  • 它还允许您指定预安装和 post 安装批处理脚本,您可以使用这些脚本进行额外配置。
  • 它还可以创建 linux 和 osx 安装程序。

对于应用程序(.ipynb 文件)的分发和更新,我曾经使用 Jupyter 服务器的启动脚本来检查 github 存储库中的更新版本,如果有则提取文件的新版本有没有。

此外,为了在 Jupyter 中获得更友好的用户体验,请检查 appmode

您或许可以使用 pyinstaller 来安装它。如果您可以通过调用一个简单的 python 脚本来启动您的程序。

pip install pyinstaller

pyinstaller --onefile your_script.py

如果您在 windows 环境中执行此操作,则会创建一个 windows exe 文件,其中包含所有依赖项。我不确定 linux 系统上会发生什么。 exe文件可能会变得非常大。

如果脚本需要任何临时文件等,您可能 运行 会遇到问题。我正在尝试自己解决这部分问题。