  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.
