簡明conda使用指南


區分conda, anaconda, miniconda

anaconda相當於conda+python+pip+一堆python科學計算常用包(numpy, scipy, matplotlib等)

miniconda相當於conda+python+pip,輕量級。

conda是通用的包管理器,能裝pip包(例如numpy),也能裝其他語言的軟件包(例如ninja, cmake).

如果你用Python,做深度學習,那么強烈建議你使用miniconda/anaconda而不是系統自帶Python/pip,雖然硬盤空間可能多消耗一些,但往往能節省在環境配置上的時間開銷。

本文的各種命令可以在conda官方的文檔中找到:Conda User guide
不過,官網文檔內容過於詳實,簡直就是字典,我是看不下去的..

conda版本

conda -V

或者

conda --version

虛擬環境

創建虛擬環境

conda create -n env_name python=x.y

e.g. 創建python3.5的虛擬環境:

conda create -n py35 python=3.5

刪除虛擬環境

conda remove --name env_name --all

重命名虛擬環境
沒法直接重命名虛擬環境,只能很naive的從原有環境clone,然后刪掉原有環境(或者用下面的“分享環境”的做法,不過估計需要聯網速度更慢):

conda create --name new_name --clone old_name
conda remove --name old_name --all

列出虛擬環境

conda env list

或者:

conda info --envs
#也可以用縮寫形式:
conda info -e

切換/激活虛擬環境

conda activate env_name

e.g. 激活py35環境:

conda activate py35

退出當前虛擬環境

conda deactivate

分享環境

導出虛擬環境
導出到yml文件,相當於pip用的requirements.txt的升級版

conda env export > environment.yml

注意:如果導出的environment.yml開頭幾行顯示的channel是anaconda官方(https://repo.anaconda.com/pkgs/main),可以考慮換成tuna的鏡像通道(https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main)來加速,e.g.

name: base
channels:
  - https://repo.anaconda.com/pkgs/main
  - defaults
dependencies:
  - asn1crypto=0.24.0=py37_0
  - attrs=19.3.0=py_0
  - backcall=0.1.0=py37_0
  ...

換成:

name: base
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - defaults
dependencies:
  - asn1crypto=0.24.0=py37_0
  - attrs=19.3.0=py_0
  - backcall=0.1.0=py37_0
  ...

使用yml導入創建虛擬環境

conda env create -n env_name -f environment.yml

復制虛擬環境

conda create -n new_env_name --clone env_name

查看某個環境的位置

默認的conda虛擬環境叫做"base",它提供的python在/home/zz/soft/miniconda

base環境之外的虛擬環境,例如py35,在/home/zz/soft/miniconda3/envs/py35/

在某些開源項目的編譯配置環境(例如OpenCV等),可以指定特定版本的python,則需要到/home/zz/soft/miniconda3/envs/py35/這樣的位置下找。

列出軟件包

包的基本信息
顯示當前環境的所有包的基本信息

conda list

顯示指定虛擬環境的所有包的基本信息

conda list -n env_name

區分顯示conda和pip包的信息
當前環境的:

conda env export

輸出結果中- pip開始列出的是pip包列表。

conda env export -n env_name

安裝軟件包

當前虛擬環境中安裝軟件包

conda install pkg_name

e.g. 安裝cmake(cmake不是一個pypi包,但可以通過conda下載安裝,並且如果你在condarc中配置了國內鏡像,下載起來會非常快,比自己手動去cmake官網下載快很多):

conda install cmake

指定虛擬環境中安裝軟件包

conda install --name env_name pkg_name

指定channel下載安裝
以下載pytorch包舉例:

conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ pytorch

或者用縮寫的參數-c替代--channels,用~/.condarc中配置的名為pytorch的channel

conda install -c pytorch pytorch

刪除軟件包

當前環境

conda remove pkg_name

指定環境

conda remove --name env_name pkg_name

查找軟件包

conda search pkg_name

conda配置

.condarc
Linux/Mac: ~/.condarc
Windows: c:/Users/xxx/.condarc

在國內使用tuna的conda鏡像。個人感覺這個.condarc中配置的是各個channel,一方面是管理不同版本的包(例如pytorch這個channe),另一方面可以切換鏡像,用來加速。

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

pip.conf
Linux/Mac: ~/.pip/pip.conf
Windows: C:/Users/xxx/pip/pip.ini

除了配置conda鏡像,還需要配置pip鏡像。因為很多python包還是需要通過pip而不是conda安裝(conda里沒有相應的包,只有pypi里有),此時pip使用國內鏡像來加速,需要配置pip.conf,例如:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

bash/zsh自動加載
以前都是安裝miniconda/anaconda時選擇"yes",自動追加配置到~/.bashrc,然后手動復制到~/.zshrc(我默認用的zsh替代了bash作為解釋器)。其實可以更簡單:

conda init zsh

進入bash/zsh不自動activate base env

conda config --set auto_activate_base false

conda實踐:安裝python2的pip無法安裝的包

由於pip官方的不作為(辣雞pip),現如今python2對應的pip幾乎沒法裝pypi包了,一旦安裝就會失敗,提示你說:需要至少python3.5的環境。老子的python2為什么不給用了?垃圾pip。

RuntimeError: Python version >= 3.5 required

解決辦法:用conda安裝!例如:

conda install numpy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM