如何在 Conda 中从 yaml 文件安装软件包

How to install packages from yaml file in Conda

提问人:maciek 提问时间:10/7/2019 最后编辑:M. Twarogmaciek 更新时间:7/16/2021 访问量:82925

问:

我想要一个 YAML 文件,它既可以用于创建虚拟环境,也可以(最重要的是)作为将 conda 软件包安装到全局环境中的基础。我正在尝试:

conda install --file ENV.yaml

但它不起作用,因为 conda 期望类似需求的格式。我应该执行什么命令来全局从我的 YAML 文件安装包?pip

Python 蟒蛇 conda miniconda

评论


答:

53赞 merv 10/7/2019 #1

您需要该命令,特别是conda-env

conda env update -n my_env --file ENV.yaml

有关详细信息,请阅读。conda env update --help

如果你想在基本环境中安装它,那么你可以使用

conda env update -n base --file ENV.yaml

请注意,从技术上讲,基本环境不是“全局”的,而只是默认环境以及 Python 包所在的位置。所有环境都是隔离的,除非您在激活期间使用 --stack 标志来覆盖隔离,或者手动操作 - 与推荐的做法相反 - 包含 env。condaPATH

评论

0赞 maciek 10/7/2019
这不起作用,我得到: CondaEnvException:无法确定环境 请使用以下选项之一重新运行此命令: * 通过 --name 或 -n 提供环境名称 * 在激活的 conda 环境中重新运行此命令。
0赞 maciek 10/7/2019
我不认为你理解我。我想全局安装软件包。而不是写 conda install X;conda 安装 Y;conda install Z 我只想提供一个带有规范的文件
0赞 maciek 10/8/2019
非常感谢,您能否用“--name base”更新我们的答案,并链接到解释一般的 conda 环境称为 base(以便我可以接受它)?这将很好地为子孙后代服务。
0赞 merv 10/8/2019
@maciek我更新了它,但我还要提醒你,你的基本环境是 Conda 居住的地方,你操纵它越少,它就会越稳定。我特别避免在那里安装任何东西。pip
1赞 salotz 11/16/2019
一个观察结果:conda 的输出有点奇怪,实际上并没有告诉你它正在安装什么,所以它可能有点令人困惑,因为这就是我所期望的。
19赞 Shady Smaoui 8/21/2020 #2

如果您的 conda env 已激活,请使用:

conda env update --file environment.yml

或者在不激活特定环境的情况下更新它:

conda env update --name envname --file environment.yml

评论

2赞 merv 10/16/2022
我鼓励用户养成总是显式指定环境(参数)的习惯。特别是对于命令,这些命令不会提示查看更改。-n,--nameconda env
1赞 sridharn 1/30/2023
conda env update --prefix /path/to/envname --file environment.yml 我发现这对于安装在预定义路径中的环境很有用。