询问我们这些长期使用 python 和 conda 的人,当我们第一次学习时,在基础环境中安装了一堆软件包,现在想要清理一些东西,以获得一个空的基础环境,也许无非就是 numpy 和 matplotlib。
理想的解决方案实际上会完全清除基础环境,但保留其他环境。
一些解决方案提到了
conda install --revision 0
,但是当我使用conda list --revisions
查看我过去的修订时,我看到列出了大量的软件包。我可以使用 conda list
确认至少其中一些软件包是使用默认 conda 通道安装的,并且自修订版 0 以来尚未更新。
我还编写了一个 bash 脚本(后来我丢失了),它遍历并卸载了每个包。但这相当笨拙。
还有其他建议来实现空白基础环境吗?
一种方法是使用带有
conda env update
标志的 --prune
命令。也就是说,专门使用最小的 YAML:
conda-base.yaml
dependencies:
- conda
- python=3.10 # specify the version you want
并运行(激活base!):
conda activate base
conda env update -f conda-base.yaml --prune -v
假设,应该删除除运行所需的所有内容
conda
。然而,实际上,当我在 Anaconda base 上使用时,我会看到奇怪的东西。具体来说,我发现 BLAS 和一些 Python 库(NumPy、SciPy)毫无明显原因地继续存在。但它应该转储大部分不必要的东西。
我使用
-n base
的行为不可靠(没有激活 base),因此我建议从激活的 base 开始工作。就我个人而言,我还包括 Conda 开发工具(anaconda-client
、conda-build
、conda-smithy
等),这给我在 v3.10 以上的 Python 方面带来了一些问题,这就是为什么我将其作为建议保留在 base 中。实际上,无论如何,人们都不应该在 base 解释器中运行自己的代码,因此希望这有助于抑制在 base 中积极升级 Python 的冲动。