微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Conda 环境中删除孤立包?

如何解决如何从 Conda 环境中删除孤立包?

我在 Conda 环境中卸载了一些包,并想删除其未使用的依赖项,即卸载孤立包。有这个命令吗?

conda clean -p 不是我想要的,因为它只从包缓存中删除未使用的包,但如果包仍安装在环境中,则不会将其标记为未使用。

解决方法

我认为 Conda 在使用 conda remove 命令时会自动执行此操作,因为它会触发完整的重新解析并仅保留新解析的版本。但是,为了这个问题,我会认为这个前提是理所当然的(也许你从文件系统中删除了一些东西,或者使用了强制标志等)。

我打算建议使用 --prune 标志(conda env update 的一部分),但这似乎已经失去了它的功能。相反,一种方法是重新创建环境。类似的东西:

# save a full backup,just in case
conda env export -n foo > foo.full.yaml

# this is the version we’re interested in
conda env export -n foo --from-history > foo.min.yaml

# remove the old one
conda env remove -n foo

# recreate it from already installed packages
conda env create -n foo -f foo.min.yaml --offline

# (optional) clean up unused packages
# conda clean -p

不幸的是,不是单线。并且希望 --offline 标志可以完成它的工作 - 主要是我们希望它仅从已安装的包中重新创建环境。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。