# DockerizeMe: Automatic Inference of Environment Dependencies for Python   Code Snippets

**Authors:** Eric Horton, Chris Parnin

arXiv: 1905.11127 · 2019-05-28

## TL;DR

DockerizeMe automatically infers and constructs Docker environments for Python code snippets, enabling their successful execution by resolving missing dependencies without manual intervention.

## Contribution

It introduces a graph-based inference method to identify dependencies for Python snippets, significantly improving dependency resolution over baseline approaches.

## Key findings

- Resolved dependencies for 892 out of 3,000 gists
- Built Docker specifications using a novel inference procedure
- Reduced import errors in Python code snippets

## Abstract

Platforms like Stack Overflow and GitHub's gist system promote the sharing of ideas and programming techniques via the distribution of code snippets designed to illustrate particular tasks. Python, a popular and fast-growing programming language, sees heavy use on both sites, with nearly one million questions asked on Stack Overflow and 400 thousand public gists on GitHub. Unfortunately, around 75% of the Python example code shared through these sites cannot be directly executed. When run in a clean environment, over 50% of public Python gists fail due to an import error for a missing library.   We present DockerizeMe, a technique for inferring the dependencies needed to execute a Python code snippet without import error. DockerizeMe starts with offline knowledge acquisition of the resources and dependencies for popular Python packages from the Python Package Index (PyPI). It then builds Docker specifications using a graph-based inference procedure. Our inference procedure resolves import errors in 892 out of nearly 3,000 gists from the Gistable dataset for which Gistable's baseline approach could not find and install all dependencies.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1905.11127/full.md

## Figures

5 figures with captions in the complete paper: https://tomesphere.com/paper/1905.11127/full.md

## References

26 references — full list in the complete paper: https://tomesphere.com/paper/1905.11127/full.md

---
Source: https://tomesphere.com/paper/1905.11127