我的目标是保持我的科学研究和分析的可重复性:我正在尽可能地自动化它们,我正在共享它们,并且我将它们与我用来运行分析的执行环境一起共享。这是为了使重新运行分析成为可能并且很容易成为可能。
我使用conda和主要来自conda-forge频道的包创建执行环境。据我了解,我有两种分享方式:
- 共享完整的环境,即包括所有图书馆。
- 仅共享环境的描述,即conda 环境文件,并依赖于存储库中包的可用性。
这些方法在再现性目标方面的局限性是什么?
我的目标是保持我的科学研究和分析的可重复性:我正在尽可能地自动化它们,我正在共享它们,并且我将它们与我用来运行分析的执行环境一起共享。这是为了使重新运行分析成为可能并且很容易成为可能。
我使用conda和主要来自conda-forge频道的包创建执行环境。据我了解,我有两种分享方式:
这些方法在再现性目标方面的局限性是什么?
还有更多的可能性,例如
共享包含完整 conda 环境的 Docker 映像,包括所有包和相关代码
共享包含来自 3 的 Docker 映像或直接包含来自 1 的 conda 环境的虚拟机映像。
选项 3 和 4 只需要能够运行 Docker 或 VM 映像,并且不再依赖于任何外部包存储库,这在例如包因某种原因被标记为不可用(导致 conda 在构建环境时失败)时可能很重要,即使包可用)。
就个人而言,我会为档案质量材料的真实再现性做所有四个选项,希望选项 2 有效(正如您在 examples.pyviz.org 上看到的所有示例),然后回退到选项 1,然后是选项 3 ,如果需要,选项4!但对于正常情况,选项 1 和 2 通常就足够了。