中文

DockerizeMe:Python 代码片段环境依赖的自动推断

软件工程 2019-05-28 v1

摘要

Stack Overflow 与 GitHub 的 gist 系统等平台通过分发旨在说明特定任务的代码片段来促进思想与编程技术的共享。Python 作为一种流行且快速增长的编程语言,在这两个站点上都被大量使用,Stack Overflow 上近一百万个问题,GitHub 上 40 万个公共 gist。遗憾的是,这些站点上共享的约 75% 的 Python 示例代码无法直接执行。在干净环境中运行时,超过 50% 的公共 Python gist 因缺失库的导入错误而失败。我们提出 DockerizeMe,一种用于推断执行 Python 代码片段而不产生导入错误所需依赖的技术。DockerizeMe 首先从 Python 包索引(PyPI)离线获取流行 Python 包的资源与依赖知识,随后使用基于图的推断过程构建 Docker 规范。我们的推断过程在来自 Gistable 数据集的近 3000 个 gist 中,解决了 Gistable 基线方法无法找到并安装所有依赖的 892 个的导入错误。

关键词

引用

@article{arxiv.1905.11127,
  title  = {DockerizeMe: Automatic Inference of Environment Dependencies for Python Code Snippets},
  author = {Eric Horton and Chris Parnin},
  journal= {arXiv preprint arXiv:1905.11127},
  year   = {2019}
}