簡體   English   中英

在 anaconda python 中手動刪除 pkgs 文件夾中的所有文件是否安全?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM