-
💡 Inline Dependency Management
Install packages right from the notebook:
%juvio install numpy pandas
Dependencies are saved directly in the notebook as metadata (PEP 723-style), like:
# /// script # requires-python = "==3.10.17" # dependencies = [ # "numpy==2.2.5", # "pandas==2.2.3" # ] # ///
-
⚙️ Automatic Environment Setup
When the notebook is opened, Juvio installs the dependencies automatically in an ephemeral virtual environment (using
uv
), ensuring that the notebook runs with the correct versions of the packages and Python. -
📁 Git-Friendly Format
Notebooks are converted on the fly to a script-style format using
# %%
markers, making diffs and version control painless:# %% %juvio install numpy # %% import numpy as np # %% arr = np.array([1, 2, 3]) print(arr) # %%
Warning
This project is currently in early beta. It may contain bugs and is subject to change. Please open an issue to report problems or suggest improvements.
1. Install Juvio:
pip install juvio
jupyter labextension enable juvio-frontend
2. Make sure you have uv installed:
https://docs.astral.sh/uv/getting-started/installation/
3. Start JupyterLab and create a Juvio Notebook.
4. Install necessary packages in the notebook and run your code
%juvio install ...
Dependencies are tracked, environments are reproducible, and your notebook stays Git-clean ✨
Known issue: If you experience the error "Notebook does not appear to be JSON", try to lauch the jupyterlab with an additional argument:
jupyter lab --ServerApp.jpserver_extensions="{'juvio': True}"
- No additional lock or requirements files are needed
- Guaranteed reproducibility
- Cleaner Git diffs
uv
– ultra-fast Python package managementPEP 723
– Python inline dependency standardsjupytext
-like format for easy version control