【发布时间】:2020-10-09 17:28:31
【问题描述】:
将 Anaconda 环境导出到 YAML 文件的典型命令是:
conda env export --name my_env > myenv.yml
但是,一个大问题是该文件的可读性,因为它包含所有库及其所有依赖项的硬规范。 Anaconda 有没有办法导出一个包含这些依赖项以使 YAML 更具可读性的最佳最小命令子集的列表?例如,如果您在 conda 环境中安装的所有内容都是 pip 和 scipy,那么 Anaconda 有没有办法意识到文件应该只是读取:
name: my_env
channels:
- defaults
dependencies:
- scipy=1.3.1
- pip=19.2.3
这样,anaconda 环境仍将具有完全相同的规范,即使没有改进(如果上游错误已修复),任何查看 yml 文件的人都会理解运行代码的“必需”条件,从某种意义上说,如果他们确实想要/不能使用 conda 环境,他们就会知道需要安装哪些软件包?
【问题讨论】:
-
有时声称兼容的软件包的新版本不兼容,或者引入错误,或者不保持精确的可重复性(如果你关心的话)等等 - 这就是人们经常想要的原因他们的传递依赖被固定。大多数包管理器都有一个依赖文件和一个“锁定文件”——前者更容易阅读和更新,后者更准确。不幸的是,Conda 还没有内置这个功能。您可能想看看这里描述的 conda-lock:pythonspeed.com/articles/conda-dependency-management
标签: python anaconda environment