voila-dashboards / voici

Voici turns any Jupyter Notebook into a static web application
https://voici.readthedocs.io/
Other
143 stars 8 forks source link

Are mamba, micromamba or conda required? #84

Closed warrickball closed 5 months ago

warrickball commented 12 months ago

Problem

Following the docs, I just installed Voici with

$ python3 -m pip install voici --user

and moved on to try to deploy Voice by creating a new empty folder, copying a (working) notebook to notebooks/test.ipynb and running

$ python3 -m pip install jupyterlite-xeus-python --user
$ voici build --contents notebooks

which eventually fails with

RuntimeError: Failed to create the virtual environment for xeus-python,
        please make sure at least mamba, micromamba or conda is installed.

Suggested Improvement

Nothing in the docs suggests that mamba, micromamba or conda need to be installed, so I'm not sure if they are actually required or if there's some other issue here. If they're only required for this example, the documentation would benefit from an example that doesn't require them.

I'm running with Python 3.11 on Fedora 38, in case that's useful.

I also recognise that the underlying issue is probably with jupyterlite-xeus-python, who may be working on relaxing that requirement, but as long as they require it, so does this Voici example, and I think it'd help to document that.

martinRenou commented 12 months ago

I also recognise that the underlying issue is probably with jupyterlite-xeus-python

This is indeed jupyterlite-xeus-python. It's only required if you build an environment with custom pre-installed packages (see https://xeus-python-kernel.readthedocs.io/en/latest/configuration.html#pre-installed-packages).

I you don't want to use conda/mamba or micromamba, the only thing you can do is use the default build of jupyterlite-xeus-python by removing the environment.yml file. But note that it's not anymore possible to install custom packages.

warrickball commented 12 months ago

Which environment.yml do you mean? There isn't one in the folder where I'm running Voici.

martinRenou commented 12 months ago

I am talking about this one https://github.com/voila-dashboards/voici/blob/main/demo/environment.yml the one used in the demo.

When running voici build, jupyterlite-xeus-python will look for an environment.yml file at the location you invoked it.

warrickball commented 12 months ago

Well, I tried "installing" micromamba (really just copied the executable to ~/.local/bin, which is in my $PATH), which got me to:

$ voici build --content notebooks
...
[VoiciBuildApp] ERROR | [lite] [post_build] [jupyterlite-xeus-python] [ERR] [Errno 2] No such file or directory: '/usr/share/empack/empack_config.yaml'
...
  File "/home/wball/.local/lib/python3.11/site-packages/empack/file_patterns.py", line 88, in pkg_file_filter_from_yaml
    with open(path) as pack_config_file:
         ^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/usr/share/empack/empack_config.yaml'

I thought I'd explore the voici build options through the command line help but that gives an error too:

$ voici build --help
[VoiciBuildApp] ERROR | Failed collecting help-message for alias 'show_tracebacks', due to: 'VoilaConfiguration'
...
  File "/home/wball/.local/lib/python3.11/site-packages/jupyterlite_core/app.py", line 132, in emit_alias_help
    cls = classdict[classname]
          ~~~~~~~~~^^^^^^^^^^^
KeyError: 'VoilaConfiguration'

voici --help works fine, by the way.

trungleduc commented 5 months ago

The documentation is updated in 0.6.0. Please feel free to re-open if needed.