conda 使用教程
針對 ubuntu 20.04
ubuntu 20.04 是 “西柚云” 主要使用的操作系統(tǒng) 西柚云官網(wǎng)
參考教程: conda 的安裝和卸載
虛擬環(huán)境管理
- conda env list (列出虛擬環(huán)境信息)
- conda create -n <env_name> (創(chuàng)建虛擬環(huán)境)
# 命令示例 conda create -n py38 -y conda create -n py39 python=3.9 -y # 官方推薦使用這種方式 conda create -n py39_2 -y && conda install -n py39_2 python=3.9 -y # 比較兩種創(chuàng)建方式有何不同米愿,并無任何不同 diff miniconda3/envs/py39 miniconda3/envs/py39_2
可以看到强经,在創(chuàng)建環(huán)境時指定 python 版本檐盟,和創(chuàng)建完環(huán)境后安裝 python 的指定版本兩者導(dǎo)致的結(jié)果并無不同庸论,那為什么官方推薦在創(chuàng)建環(huán)境時使用 python=3.9 的方式指定 python
版本呢手素? 這是因為如果您要在該虛擬環(huán)境中使用 python死陆,就應(yīng)該在創(chuàng)建環(huán)境之初下載 python3.9 惊豺,之后在這個虛擬環(huán)境中下載的其他包都會匹配 python3.9的依賴與約束署照。如果安裝了很多其他包之后再安裝 python3.9,處理環(huán)境依賴就會變得較為復(fù)雜酗钞,甚至導(dǎo)致一些不易察覺的 bug腹忽。
- conda activate <env_name> (進(jìn)入虛擬環(huán)境)
# 命令示例 conda activate py39
- conda deactivate <env_name> (退出虛擬環(huán)境)
# 命令示例 conda deactivate
- conda remove -n <env_name> --all 刪除虛擬環(huán)境
# 命令示例 conda create -n test -y conda env list # 刪除 test 虛擬環(huán)境 conda remove -n test --all conda env list
- 導(dǎo)出虛擬環(huán)境
# 適用于在相同操作系統(tǒng)版本下 clone 虛擬環(huán)境 conda list --explicit > spec-list.txt # 適用于所有平臺之間 clone 虛擬環(huán)境 conda env export > environment.yml
- 根據(jù)導(dǎo)出的文件創(chuàng)建虛擬環(huán)境
# 代碼示例 # 根據(jù)導(dǎo)出包創(chuàng)建 env_name1 的虛擬環(huán)境 conda create -n env_name1 --file spec-list.txt conda env create --file environment.yml
channels 管理
conda 處理 channels 的優(yōu)先級的步驟:
1. 按通道優(yōu)先級從高到低對包進(jìn)行排序。
2. 將捆綁的軟件包(具有相同通道優(yōu)先級的軟件包)從最高版本號到最低版本號排序砚作。例如窘奏,如果 channelA 包含 NumPy 1.12.0 和 1.13.1,則 NumPy 1.13.1 將被排序更高葫录。
3. 將仍然綁定的軟件包(具有相同通道優(yōu)先級和相同版本的軟件包)從最高到最低內(nèi)部版本號排序着裹。例如,如果 channelA 同時包含 NumPy 1.12.0 build 1 和 build 2米同,則 build 2 首先排序骇扇。通道B 中的任何包都將排在通道A 之下。
4. 安裝排序列表中滿足安裝規(guī)范的第一個包
- 列出 conda 中配置的 channels面粮,根據(jù)從低到高的優(yōu)先級排列
conda config --get channels
- 添加 channels少孝,添加國內(nèi)的 channels 也就是我們常說的添加國內(nèi)源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- 刪除 channels
- 方法 1 (通過命令刪除):
# 首先查看 channels conda config --get channels # 刪除指定的 channels conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- 方法 2 (編輯 .condarc 文件刪除想要刪除 channels 對應(yīng)的行)
vi ~/.condarc
- 方法 1 (通過命令刪除):
- 安裝包時暫時添加 channels,此 channels 處于最高優(yōu)先級
conda install -c bioconda presto
包管理
使用 conda 安裝包之前熬苍,需要在以下鏈接中搜索 conda 包稍走,找到安裝對應(yīng)包的命令后再進(jìn)行安裝
搜 conda 包
- conda list (查看當(dāng)前虛擬環(huán)境已經(jīng)安裝的包)
- conda install <package_name>
# 命令示例 conda install --help # -y: yes conda install requests -y # -c: 臨時增加一個 channel ,并且增加的 channels 會處于最高優(yōu)先級 conda install -c bioconda presto # -vv: 顯示下載過程中的詳細(xì)日志柴底,方便定位問題 conda install numpy -y -vv # 后臺下載 nohup conda install pandas -y &
- conda 官方建議婿脸,使用 conda 安裝的 python包和使用 pip 安裝的 python 包是有略微不同的,如果可能柄驻,盡量使用 conda 來安裝包狐树。參考鏈接
- 在 conda 4.6 以后,conda 可以識別 pip 安裝的 python包鸿脓,不過目前這一功能還處于實驗階段褪迟。
- 在 conda 中應(yīng)該優(yōu)先使用 conda 安裝包冗恨,不要混用 conda 和 pip,可以設(shè)置一個虛擬環(huán)境專門用戶 pip 管理 python 包
- conda 和 pip 都可以根據(jù)文件批量安裝 python 包
pip list --format=freeze > requirements.txt pip install -r requirements.txt conda install -n env_name --file requirements.txt
配置管理
- conda config --show
# 查看 channels conda config --help conda config --get channels conda config --remove <key> <value>
我們很難記住那么多配置項的作用味赃,如果需要可以查閱 conda 官方教程對各配置項的詳解
conda 配置項的作用