我有一个conda虚拟环境,其中安装了几个未使用的软件包(使用pip install
或conda install
)。
清理它的最简单方法是什么,以便只保留我的代码实际使用的包,而其他包已卸载?
答案 0 :(得分:24)
conda clean --yes --all
会消毒一切。但请注意:如果您想进行任何类型的--offline
操作,请不要使用--all
;更有选择性。
答案 1 :(得分:7)
@AgileBean我尝试回答您的评论问题,即为什么--packages
比--all
给您更多的结果。希望这仍然与主要问题有关如何卸载。
两者之间的区别
conda clean --yes --all
和
conda clean --yes --packages
是软件包仅是提取的文件夹。其他所有文件(.tar.bz2,.conda,即:tarball)都不会被--packages
清除。
如果您只想清洁压缩包,则需要
conda clean --yes --tarballs
参考: Anaconda Python: Delete .tar.gz in pkgs
这里是差异的一个示例。请注意,--all实际运行中都包含--packages,但并没有显示--packages处于空运行状态(非常奇怪!请参见以下屏幕截图,它仅在DryRunExit: Dry run. Exiting.
处停止)
存在哪些差异可以解释说,与--packages
相比,--all
的发现更多?
如前所述,我的第一个猜测是您只使用了空运行选项,该选项在运行--packages
时不会向您显示已清理的conda clean --all --dry-run
。因此,请参见conda clean --all
的真实运行情况:
这两个警告可能很有趣:
WARNING: C:\Users\Admin\.conda\pkgs does not exist
WARNING: C:\Users\Admin\AppData\Local\conda\conda\pkgs does not exist
但是,如果您不是空运行,而是真正运行--all
,则会得到
相同,因为--all
包含--packages
并因此包含
警告。同样,在空运行时看不到这一点。
一个很好的原因可能是您曾经清洁过包裹
--tarballs
,或者您只是删除了一些压缩包
手动操作,以使解压缩后的软件包在--dry-run
中的压缩包数量超过其压缩包。
您可能已经手动将许多软件包解压缩到缓存中
文件夹,例如git和其他所有的手动安装
不提供conda / pip安装的安装,然后再次在--dry-run
中退出--all
,但不显示--packages
。
也许您在文档中找到了其他东西?
https://docs.conda.io/projects/conda/en/latest/commands/clean.html。
它说明符号链接:“警告:这不会检查使用符号链接返回到程序包缓存的程序包。” 由于--packages
是--all
的一部分,因此仍然没有解释你的差异。
我想您的--packages
> --all
问题的原因是,尽管conda clean --all --dry-run
也会清除--packages
的结果,所以它不会显示Sub test()
Dim Arr() as Variant
Dim CurrDoc as Word.Document
ReDim Arr(0 to 39, 0 to 1)
Arr() = FillArr(CurrDoc, Arr())
End Sub
Function FillArr(CurrentDocument As Word.Document, CurrentArray() As Variant) As Variant
j = 1
For Each chk In CurrentDocument.ContentControls
If chk.Type = 8 Then
CurrentArray(j, 1) = chk.Title
CurrentArray(j, 2) = chk.Checked
j = j + 1
End If
Next chk
FillArr() = CurrentArray()
End Function
的结果,因此您实际上没有这个问题;)。
答案 2 :(得分:2)
就其价值而言,我注意到以下...
conda clean --all --dry-run
给了我大约 2GB 的空间conda clean --packages --dry-run
给了我大约 6GB 的空间与 OP 观察到的差异相同...
当我下一次执行 conda clean --tarballs --dry-run
时,我注意到它也给了我 2GB,奇怪...比较第一个和最后一个命令的输出似乎 conda clean --all --dry-run
只向我展示了 tarball,没有提到包< /p>
我继续,做了conda clean --tarballs
,然后重新运行conda clean --all --dry-run
...你猜怎么着?它现在显示了包(在提到没有 tarball 之后,这是合乎逻辑的,因为我刚刚清理了它们)
我的结论...当缓存中仍有 tarball 时,conda clean --all --dry-run
无法为您提供将/可能删除的内容的全貌