技术问询:conda env update是否移除环境文件外包及环境匹配规则
关于
conda env update的两个常见疑问解答 刚好之前折腾conda环境的时候仔细摸过这个命令的行为,给你明确解答:
疑问1:conda env update 是否会移除不属于环境文件中的包?
默认情况下完全不会。这个命令的默认逻辑是「增量同步」,只会盯着yaml文件里列出的包做操作,完全不会碰那些你后来手动安装、不在yaml配置里的包。
疑问2:conda env update 执行后,环境是否与yaml文件完全一致?
默认行为是仅添加缺失包、升级过时包,同时保留手动安装的包,不会自动让环境和yaml完全对齐。
如果想要让环境和指定的yaml文件完全一致(也就是自动移除所有不在yaml里的包),你需要加上--prune参数,执行命令:
conda env update --prune -f FILE.yaml
举个实际例子帮你理解:
- 假设你的yaml文件里只指定了
numpy=1.21,之后你手动给环境装了pandas - 执行默认的
conda env update -f env.yaml后,pandas依然会留在环境里 - 但如果执行
conda env update --prune -f env.yaml,pandas就会被自动移除,环境里就只剩yaml里定义的numpy=1.21了
内容的提问来源于stack exchange,提问作者Daren Thomas
相关产品推荐
相关产品推荐

