一、介紹
- 開源包管理系統和環境管理系統 ,包括多種語言的包安裝,運行,更新,刪除,最重要的是可以解決包依賴問題
- 支持語言包括 Python,R,Ruby,Lua,Scala,Java,JavaScript,C / C ++,FORTRAN
- 支持在Windows,macOS和Linux上運行
- Conda可以構建不同的環境,同時可以對環境進行保存,加載和切換操作
- conda包和環境管理器包含在所有版本的Anaconda和Miniconda中
二、安裝
- 下載 (Linux 64位系統爲例)
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
下載地址:https://conda.io/en/latest/miniconda.html
清華鏡像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
- 安裝
bash Miniconda3-latest-Linux-x86_64.sh
- 配置環境
- 查看是否安裝成功,如果安裝沒問題會顯示conda版本號
conda --version
- 新建環境
conda create --name your_env_name
your_env_name是環境名稱,對環境的操作後面會詳述
- 激活環境
conda activate
- 添加channels (相當於R的鏡像源)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes
國內鏡像推薦:
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
https://mirrors.ustc.edu.cn/help/anaconda.html
三、使用及命令詳解
文檔:https://conda.io/en/latest/
1. 包管理功能
conda的一大特點就是下載軟件資源會自動解決包依賴
- 搜索包
- 查看特定包
conda search fastqc
- 安裝包
- 安裝特定包(需要確認安裝,可以看到conda已經將包依賴問題,環境問題已經解決)
conda install fastqc
- 安裝特定版本的軟件包(查看軟件版本可以使用
conda search fastqc
)conda install fastqc=0.11.6
- 安裝多個包
conda install fastqc multiqc
- 包更新
- 更新特定包
conda update fastqc
- 更新Python
conda update python
- 更新conda本身及Anaconda元數據包
conda update conda
conda update anaconda
- 防止包更新
conda update fastqc --no-pin
在環境的conda-meta
目錄中,添加一個名爲pinned
的文件,其中包含您不想更新的軟件包列表。
- 包刪除
- 刪除當前環境中的包
conda remove pkg_name
- 刪除特定環境中的包
conda remove -n env_name pkg_name
- 刪除多個包
conda remove pkg_name1 pkg_name2
- 確認刪除的包
conda list
- 包列表
- 當前環境所有包
conda list
- 特定環境所有包
conda list -n env_name
2. 環境管理功能
每個環境都有自己獨立的軟件或開發包列表,並會自動添加相應的環境變量和依賴關係。
- 創建環境
- 創建特定名字的環境
conda create -n env_name
- 使用特定版本的Python創建環境
conda create -n env_name python=3.4
- 使用特定包創建環境
conda create -n env_name pandas
- 用 environment.yml 配置文件創建環境
conda env create -f nvironment.yml
environment.yml 文件:name: stats2 channels: - javascript dependencies: - python=3.4 # or 2.7 - bokeh=0.9.2 - numpy=1.9.* - nodejs=0.10.* - flask - pip: - Flask-Testing
- 導出環境文件
environment
- 導出
environment.yml
環境文件- 激活需要導出文件的環境
conda activate env_name
-
- 導出
conda env_name export > environment.yml
- 激活環境
conda activate env_name
- 停用環境
conda deactivate env_name
- 查看環境(當前環境用*表示)
conda info -envs
- 刪除環境
conda remove --n env_name
- 構建相同的conda環境(不同機器間的環境複製)
- 激活需要導出配置文件的環境
conda list --explicit > files.txt
- 在同系統的不同機器執行
conda create --name env_name -f files.txt
- 克隆環境(同一臺機器的環境複製
conda create --name clone_env_name --clone env_name
3. 渠道管理
這個決定你從哪個站點,下載及安裝資源包
- 添加新渠道到頂部,最高優先級
conda config --add channels new_channel
或者conda config --prepend channels new_channel
- 添加新渠道到底部,最低優先級
conda config --append channels new_channel
4. 實例
創建不同版本的Python環境
- Python 3.6 的 Anaconda 環境
conda create -n py36 python=3.6 anaconda
- Python 2.7 的 Anaconda 環境
conda create -n py27 python=2.7 anaconda
5. 報錯解決
- 錯誤:
error while loading shared libraries
- 解決辦法(以 libbz2.so.1.0 爲例):
- 搜索
find / -name libbz2.so.1.0
- 比如得到路徑爲
/root/anaconda3/lib
- 添加動態鏈接庫到配置文件:
vim /etc/ld.so.conf
include ld.so.conf.d/*.conf /root/anaconda3/lib
- 查看是否配置成功
ldconfig -v | grep bz2