gpt4 book ai didi

python - 以最小化要求导出 Conda 环境

转载 作者:行者123 更新时间:2023-12-03 23:59:21 25 4
gpt4 key购买 nike

将 Anaconda 环境导出到 YAML 文件的典型命令是:conda env export --name my_env > myenv.yml然而,一个大问题是该文件的可读性,因为它包含所有库及其所有依赖项的硬规范。 Anaconda 有没有办法导出包含这些依赖项的最佳最小命令子集列表,以使 YAML 更具可读性?例如,如果您在 conda 环境中安装的所有内容都是 pipscipy , 有没有办法让 Anaconda 意识到文件应该是这样的:

name: my_env
channels:
- defaults
dependencies:
- scipy=1.3.1
- pip=19.2.3
这样,anaconda 环境仍将具有完全相同的规范,如果没有改进(如果上游错误已修复)并且任何查看 yml 文件的人都会了解运行代码的“要求”,从某种意义上说如果他们确实想要/不能使用 conda 环境,他们会知道他们需要安装哪些软件包?

最佳答案

Conda CLI 中的选项
这就是 --from-history flag 是为了,但不完全是。它将只包含名为 的内容,而不是包含每个包的确切构建信息。明确的规范 ,即用户通过 CLI 明确请求的规范(例如, conda install scipy=1.3.1 )。试试:

conda env export --from-history --name my_env > myenv.yml
如果用户在安装过程中最初包含版本,这将仅包含版本。因此,创建新环境很可能不会使用完全相同的版本和构建。另一方面,如果用户最初包含超出版本和构建的其他约束,它们也将被包含(例如, channel 规范 conda install conda-forge::numpy 将导致 conda-forge::numpy)。
另一个值得注意的选项是 --no-builds标志,它将导出 YAML 中的每个包,但省略构建说明符。这些标志以相互排斥的方式工作。

污染
如果这还不够,那么还有一个名为 conda-minify 的外部实用程序。它提供了一些功能来导出基于依赖树而不是通过用户的显式规范最小化的环境。

关于python - 以最小化要求导出 Conda 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64284698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com