# Restoring Execution Environments of Jupyter Notebooks

arXiv: https://arxiv.org/abs/2103.02959 · HTML: https://mlsanity.com/paper/2103.02959/

## Key facts

- Cited by 5 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 4 Mar 2021.

## Built on by (most cited first, 5 of 5)

- [LExecutor: Learning-Guided Execution](https://mlsanity.com/paper/2302.02343/) (2023)
- ["My productivity is boosted, but ..." Demystifying Users' Perception on AI Coding Assistants](https://mlsanity.com/paper/2508.12285/) (2025)
- [Pop Quiz! Do Pre-trained Code Models Possess Knowledge of Correct API Names?](https://mlsanity.com/paper/2309.07804/) (2023)
- [Untangling Knots: Leveraging LLM for Error Resolution in Computational Notebooks](https://mlsanity.com/paper/2405.01559/) (2024)
- [Predicting the Understandability of Computational Notebooks through Code Metrics Analysis](https://mlsanity.com/paper/2406.10989/) (2024)

## Abstract (arXiv)

More than ninety percent of published Jupyter notebooks do not state dependencies on external packages. This makes them non-executable and thus hinders reproducibility of scientific results. We present SnifferDog, an approach that 1) collects the APIs of Python packages and versions, creating a database of APIs; 2) analyzes notebooks to determine candidates for required packages and versions; and 3) checks which packages are required to make the notebook executable (and ideally, reproduce its stored results). In its evaluation, we show that SnifferDog precisely restores execution environments for the largest majority of notebooks, making them immediately executable for end users.
