conda啓動環境時自動執行腳本,以切換環境變量(以CUDA爲例)

在使用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文件即可

刪除環境變量中的某一項

參考網站https://askubuntu.com/questions/433329/how-to-remove-a-path-from-system-pathpath-using-terminal-commands

我的腳本如下:

sudo rm -rf /usr/local/cuda  # 刪除當前的指引
sudo ln -s /usr/local/cuda-10.0/ /usr/local/cuda  # 將cuda指引引向cuda10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章