[英]Is it safe to manually delete all files in pkgs folder in anaconda python?
我運行這個命令來釋放 anaconda 上的磁盤空間
$ conda clean -all
但是,anaconda python 的pkgs
文件夾中仍有一些大文件。
手動刪除pkgs
文件夾中的所有文件是否安全? 有破壞我的 anaconda 環境的風險嗎? 如果有,有哪些副作用?
我在 Windows 10 上使用 anaconda 2018。
實際上,在某些情況下,可以選擇刪除pkgs
子目錄。 正如 Anaconda 社區支持在此處所述,“ pkgs
目錄只是一個緩存。您可以根據需要完全刪除它。但是,在創建新環境時,將緩存中的任何包留在周圍會更有效。”
根據文檔,您可以使用conda clean --packages
刪除pkgs
中未使用的包(這會將它們移動到pkgs/.trash
,然后您可以安全地刪除它們)。 雖然這不會檢查使用符號鏈接安裝到包緩存的包,但如果您不使用此類環境或在 Windows 下工作,則這不是主題。 我想這就是conda clean --packages
包含在conda clean --all
。
為了更積極地節省空間,您可以使用conda clean --force-pkgs-dirs
刪除所有可寫的包緩存(同樣需要注意的是,可能存在鏈接到這些目錄的環境)。 如果你不使用環境或在 Windows 下使用 Anaconda,你可能是安全的。 就個人而言,我使用此選項沒有問題。
在查看了@Robert's answer 中指出的文檔后,我必須承認我最初的回應過於危言聳聽,並且在某些方面公然不正確。 我對誤導性的回應表示歉意。
盡管如此,我確實相信我提出的一些內容對該線程仍有一些價值,因此我決定保留答案並進行修改。 特別是,我認為值得強調的是,刪除pkgs
目錄實際上可能無法實現 OP 所希望的(以節省空間),並且刪除包緩存會破壞 Conda 未來的冗余最小化策略,因為無法共享已安裝的包。
相反,我的最終建議與 @Robert 的建議一致,即使用conda clean -p
刪除未使用的包,但保留緩存 ( pkgs
dir),以便未來的環境仍然可以利用硬鏈接。 最后要注意的一點是,某些工具(例如conda-pack
)依賴於包緩存的完整性才能工作,因此刪除pkgs
將阻止它們的使用。
不,這絕對不安全,事實上,您真正釋放磁盤空間的唯一方法是破壞您的
基礎環境。
問題是所有 envs 都使用指向pkgs
目錄的硬鏈接,因此即使您刪除位於pkgs
目錄中的鏈接,envs 中的鏈接仍然存在,因此您不會刪除磁盤上的任何物理文件。
您可能會做的唯一真正刪除是僅由
base引用的內容,即唯一的副本在
pkgs
,因此有可能破壞
base 。
更正:基本ENV仍鏈接的包到其他位置,所以刪除
pkgs
不會影響基地為我原來的結論。
我強烈建議您查看有關估計 Conda 實際磁盤使用情況的另一篇文章。 您可能高估了實際使用的空間量。 對於pkgs
大多數文件,只有一個物理副本,因此無需進行任何額外的手動優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.