Is it possible to convert Jupyer Notebook (ipynb file) to desktop app?

Hey, I have a Jupyter Notebook project with a few ipywidgets and visualizations. Is it possible to convert it to a standalone desktop app? I would like the app to run offline. It would be nice to not force other users to install python+packages manually - just exe (I’m on Windows) that will install everything and can be run by no-coders.

As soon as “a few ipywidgets and visualizations” includes things like pandas and numpy, the complexity can go up rather quickly. That being said, it’s plausible that one of the tools like pyinstaller could be used to build up something for you.

As I usually like shipping upgradeable things, and often use non-python things like git, in the past I’ve done a constructor installer build, which can be coaxed into being relatively well-behaved, standalone environments, and presents a desktop icon for launching and uninstalling. Some examples are robotlab and gt-coar-lab

In either case, drawing pixels: with constructor, one can ship a managed firefox. Both approaches can probably ship a qtwebengine app. Getting off the conda/python path, electron is an option: the jupyterlab-desktop project is currently enjoying some support in that regard… and also uses constructor under the hood to provision the python pieces. Customizing this is not for the faint of heart, however: maybe some day!

For something COMPLETELY DIFFERENT, it’s also semi-plausible to ship certain content to run only in the browser, including things like ipywidgets, and more amazingly, numpy and pandas with jupyterlite (demo). While still very alpha, some folk have started doing pretty cool stuff with it. The shortcoming of this approach:

  • a lot of files are loaded from CDN
    • we’re working on it
  • the files at present must be served by an actual web server… just about every computer has one, but on windows it’s probably icky like IIS express.
    • would love to figure out some other way (e.g. faking JSON-ish requests with HTML) but it there hasn’t been a super-strong demand signal yet.
  • the build is still pretty CLI
    • soon we’ll have some kind of labextension for configuring all the bells and whistles

Good luck!

2 Likes

Thank you!

Some magical way to one-click pack project from Jupyter Notebook into electron app would be amazing.

I think that this could be in scope of GitHub - voila-dashboards/voila: Voilà turns Jupyter notebooks into standalone web applications sub-project. I could imagine Voilà Standolone or Voilà Desktop becoming a thing if there is interest and contributors; it would be pretty useful and awesome.

Also cross-referencing: Is it possible to convert Jupyter Notebook project to standalone app with Jupyterlab-Desktop? · Issue #333 · jupyterlab/jupyterlab-desktop · GitHub.

2 Likes