'Share with anyone on the web interactive python jupyter notebook with dependent files and functions in another file (.py): Colab or something else?

What are the free solutions for sharing an interactive python Jupyter notebook with user-defined module and dependent input files?

I have python Jupyter notebook that serves as a code interface for non-technical users. The code itself is in another file code.py that contains many functions that are called from the python Jupyter notebook as needed. Running these functions reqires about ten input files with a size of 100 mb. I want anyone on the web to open this notebook in an executable environment such that the user can run the code with different user choices.

One approach I consider implementing is to use Google Colab, Google Drive, GitHub, and
the Python Package Index (PyPI) as follows:

  1. Package the code.py as PyPI module
  2. Add dependent input files on Google Drive and get their shared link id
  3. Add Colab notebook on GitHub
  4. Once the user run the Colab notebook then it will pip install and import the functions on code.py and download the dependent input files from Google Drive

How to improve or simplify this approach?
What would be a better Colab-based approach to do this job?
Is there any other environments (e.g., Binder) that are more suitable than Colab for this job ?



Solution 1:[1]

You can use MyBinder.org and use curl or wget in a postBuild or start configuration file to get your input files if they are elsewhere.

For non-technical users you may want to combine in the use of Voila and myBinder.org. See here about Voila. There's a launch binder badge you can use to demo there. There's a bunch of other examples that run on MyBinder at the Voila Gallery, too.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Wayne