在安裝了Anaconda之后,創(chuàng)建的虛擬環(huán)境可能會默認(rèn)保存在
C:\ProgramData\Anaconda3\envs或C:\Users\用戶名\.conda\envs路徑下,但C盤的存儲空間很寶貴,由于每個虛擬環(huán)境的大小可能達(dá)到n個GB,稍不注意就會遇到C盤紅色警告。
解決思路
-
方案1: 每次創(chuàng)建虛擬環(huán)境時手動指定存放路徑 -
方案2:修改Anaconda默認(rèn)的虛擬環(huán)境存放路徑
很顯然,方案2更討喜。
經(jīng)分析(如下圖所示),可以知道在Anaconda 目錄下主要是envs和pkgs這兩個文件夾占用了空間,這正是虛擬環(huán)境的目錄和包目錄,若可以把這兩個文件夾放到其他盤,則問題可得以解決。
修改配置前
在未進(jìn)行任何配置之前,當(dāng)我們創(chuàng)建新的虛擬環(huán)境時,虛擬環(huán)境的存放路徑在C盤,如下圖所示:
修改配置的步驟
1. 在C盤以外的磁盤創(chuàng)建2個文件夾
以我在D盤為例:
2. 編輯.condarc文件
.condarc文件默認(rèn)存放在當(dāng)前用戶目錄下,即C:\Users\用戶名\目錄下,若該目錄下不存在該文件,可手動創(chuàng)建一個。在該文件中添加以下配置信息,分別將envs和pkgs文件夾指向新創(chuàng)建的路徑和舊的路徑
envs_dirs: [D:\Anaconda3\envs, C:\ProgramData\Anaconda3\envs]
pkgs_dirs: [D:\Anaconda3\pkgs, C:\ProgramData\Anaconda3\pkgs]
上圖中標(biāo)號為
1的是在步驟1中分別創(chuàng)建的2個文件路徑,標(biāo)號為2的是當(dāng)前已有的虛擬環(huán)境存放的文件路徑。一定要將新創(chuàng)建的文件路徑放在[]列表的第一位。
原因是:系統(tǒng)在讀取路徑信息時,默認(rèn)選擇列表中的第一個路徑作為虛擬環(huán)境存放的路徑,若第一個路徑不存在,才會繼續(xù)尋找后面的路徑,將當(dāng)前虛擬環(huán)境存放路徑也加進(jìn)來是為了以防第一個路徑被誤刪,創(chuàng)建新的虛擬環(huán)境時,依然可以存放在自己指定的目錄中,也是為了不妨礙當(dāng)前已有的虛擬環(huán)境的使用,當(dāng)然你也可以添加更多其他的備選路徑。
你也可以打開Anaconda Navigator點擊左上角的 File -> Preference按照下圖標(biāo)注的序號進(jìn)行該步驟的配置,效果是一樣一樣的。
修改配置后
在修改了.condarc文件后,當(dāng)我們創(chuàng)建新的虛擬環(huán)境時,虛擬環(huán)境的存放路徑已經(jīng)變?yōu)榱?code>D盤,如下圖所示:
一個有用的思考:是否可以將已有的虛擬環(huán)境移動到新的路徑中?
答案:
可以,但有注意事項
-
測試步驟1:首先將.condarc中添加的配置信息刪掉,執(zhí)行conda create -n test2在默認(rèn)配置下創(chuàng)建一個名為test2的虛擬環(huán)境,該虛擬環(huán)境自然就存放在了默認(rèn)的C盤。此時執(zhí)行conda env list可以看到test2虛擬環(huán)境在C盤。
在默認(rèn)配置下創(chuàng)建一個虛擬環(huán)境 -
測試步驟2:將C:\ProgramData\Anaconda3\envs下的test2文件夾剪切并粘貼到D:\Anaconda3\envs目錄下,再執(zhí)行conda env list命令,可以看到test2虛擬環(huán)境已不存在。很容易理解的是:由于.condarc文件未添加任何配置信息,test2文件夾已被轉(zhuǎn)移到其他路徑下,對于系統(tǒng)來說,相當(dāng)于test2文件夾已被刪掉,所以該虛擬環(huán)境不會再顯示在列表中。
在這里插入圖片描述 -
測試步驟3:將.condarc配置文件恢復(fù)到以下圖1狀態(tài)后,重新執(zhí)行conda env list命令,可以看到test2虛擬環(huán)境,且此時它的路徑信息已顯示為D:\Anaconda3\envs\test。
圖1.恢復(fù)配置信息
結(jié)論:
anaconda不僅僅在創(chuàng)建新的虛擬環(huán)境時會讀取.condarc文件的配置信息。因此,倘若你想把現(xiàn)有的虛擬文件轉(zhuǎn)移到別的磁盤目錄下來拯救茍活著的C盤,請確保該目錄在.condarc文件中存在,否則anaconda將會找不到轉(zhuǎn)移后的虛擬環(huán)境。