在使用conda管理多種python環境時,常常需要更改一些環境變量。比如conda的環境1依賴於cuda8.0,而另一個環境依賴cuda10.0.顯然每次都手動更改是不可接受的。
conda自V3.8版本之後就開始支持這個功能了。因爲那時候,有人在Stack Overflow上問了這樣一個相關的問題:Create a post activate script in Conda。
參考網站:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#saving-environment-variables
具體做法
condaV3.8之後,任何一個在${CONDA_PREFIX}/etc/conda/activate.d/
路徑下可執行的.sh腳本都會在激活環境的時候被運行。
其中${CONDA_PREFIX}
是當前環境的路徑,你可以通過命令echo ${CONDA_PREFIX}
來查看它的值,其實就是anaconda的安裝路徑下的envs/env_name/
具體步驟如下:
# 激活你想要添加腳本的環境
conda activate your_env
# 建立激活環境時對應的文件夾
mkdir -p ./etc/conda/activate.d
# 建立退出環境時對應的文件夾
mkdir -p ./etc/conda/deactivate.d
# 在這些文件夾下建立對應你想要執行的.sh文件即可
刪除環境變量中的某一項
我的腳本如下:
sudo rm -rf /usr/local/cuda # 刪除當前的指引
sudo ln -s /usr/local/cuda-10.0/ /usr/local/cuda # 將cuda指引引向cuda10