当前Anaconda
版本为2021.5
。
Anaconda
可以看做是pip
和virtualenv
的结合体,既可以进行包管理,还可以进行虚拟环境管理。Anaconda
安装成功后会自动创建一个base
虚拟环境并安装默认包。
通过Anaconda Navigator
可以以可视化界面创建、复制、删除等操作。
下面简要说明如何通过conda
命令管理虚拟环境。
查看虚拟环境列表
conda env list
、conda info -e
和conda info --env
命令可查看虚拟环境列表。
(base) C:\Users\Administrator>conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
(base) C:\Users\Administrator>conda info -e
# conda environments:
#
base * C:\ProgramData\Anaconda3
(base) C:\Users\Administrator>conda info --env
# conda environments:
#
base * C:\ProgramData\Anaconda3
创建虚拟环境
创建虚拟环境主要通过conda create
命令,其参数有两种主要选择:
-n
参数指定虚拟环境名称,环境目录位于C:\ProgramData\Anaconda3\envs
,目录名为环境名称。-p
参数指定虚拟环境的目录路径,环境名称为空。
上述两个参数不能同时出现。
例如:conda create -n study -y python=3.6 numpy
命令中, -n study
说明虚拟环境名称为study
,-y
参数说明不再询问是否确认,python=3.6
参数说明指定使用python3.6
解释器,numpy
说明预装numpy
包。
(base) C:\Users\Administrator>conda create -n study -y python=3.6 numpy
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\ProgramData\Anaconda3\envs\study
added / updated specs:
- numpy
- python=3.6
The following NEW packages will be INSTALLED:
blas anaconda/pkgs/main/win-64::blas-1.0-mkl
certifi anaconda/pkgs/main/win-64::certifi-2021.5.30-py36haa95532_0
icc_rt anaconda/pkgs/main/win-64::icc_rt-2019.0.0-h0cc432a_1
intel-openmp anaconda/pkgs/main/win-64::intel-openmp-2021.3.0-haa95532_3372
mkl anaconda/pkgs/main/win-64::mkl-2019.4-245
mkl-service anaconda/pkgs/main/win-64::mkl-service-2.3.0-py36h196d8e1_0
mkl_fft anaconda/pkgs/main/win-64::mkl_fft-1.3.0-py36h46781fe_0
mkl_random anaconda/pkgs/r/win-64::mkl_random-1.0.4-py36h343c172_0
numpy anaconda/pkgs/r/win-64::numpy-1.17.0-py36h19fb1c0_0
numpy-base anaconda/pkgs/r/win-64::numpy-base-1.17.0-py36hc3f5095_0
pip anaconda/pkgs/main/win-64::pip-21.0.1-py36haa95532_0
python anaconda/pkgs/main/win-64::python-3.6.13-h3758d61_0
setuptools anaconda/pkgs/main/win-64::setuptools-52.0.0-py36haa95532_0
six anaconda/pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sqlite anaconda/pkgs/main/win-64::sqlite-3.36.0-h2bbff1b_0
vc anaconda/pkgs/main/win-64::vc-14.2-h21ff451_1
vs2015_runtime anaconda/pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
wheel anaconda/pkgs/main/noarch::wheel-0.37.0-pyhd3eb1b0_0
wincertstore anaconda/pkgs/main/win-64::wincertstore-0.2-py36h7fe50ca_0
conda create -p d:\study python=3.6
例如:conda create -p d:\study python=3.6
命令中, -p d:\study
说明虚拟环境的目录路径为d:\study
,python=3.6
参数说明指定使用python3.6
解释器。
(base) C:\Users\Administrator>conda create -p d:\study python=3.6
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: d:\study
added / updated specs:
- python=3.6
The following NEW packages will be INSTALLED:
certifi anaconda/pkgs/main/win-64::certifi-2021.5.30-py36haa95532_0
pip anaconda/pkgs/main/win-64::pip-21.0.1-py36haa95532_0
python anaconda/pkgs/main/win-64::python-3.6.13-h3758d61_0
setuptools anaconda/pkgs/main/win-64::setuptools-52.0.0-py36haa95532_0
sqlite anaconda/pkgs/main/win-64::sqlite-3.36.0-h2bbff1b_0
vc anaconda/pkgs/main/win-64::vc-14.2-h21ff451_1
vs2015_runtime anaconda/pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
wheel anaconda/pkgs/main/noarch::wheel-0.37.0-pyhd3eb1b0_0
wincertstore anaconda/pkgs/main/win-64::wincertstore-0.2-py36h7fe50ca_0
Proceed ([y]/n)?
列出所有虚拟环境验证。
(base) C:\Users\Administrator>conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
study1 C:\ProgramData\Anaconda3\envs\study
d:\study
确认当前虚拟环境
-
Anaconda
命令行的命令提示符即表示了当前的虚拟环境。例如(base) C:\Users\Administrator>
说明当前虚拟环境为base
。 -
虚拟环境列表中带
*
的说明即当前虚拟环境。
(base) C:\Users\Administrator>conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
study1 C:\ProgramData\Anaconda3\envs\study
d:\study
- 查看配置信息命令
conda info
也可显示当前虚拟环境。
(base) PS C:\Users\Administrator> conda info
active environment : base
active env location : C:\ProgramData\Anaconda3
shell level : 1
user config file : C:\Users\Administrator\.condarc
populated config files : C:\Users\Administrator\.condarc
激活/切换虚拟环境
- 激活使用名称定义的虚拟环境的命令格式为
conda activate 名称
。
(base) C:\Users\Administrator>conda activate study
(study) C:\Users\Administrator>
- 激活使用路径定义的虚拟环境的命令格式为
conda activate 路径
。
(study) C:\Users\Administrator>conda activate d:\study
(d:\study) C:\Users\Administrator>
退出虚拟环境
conda deactivate
可退出当前虚拟环境。
注意:退出当前虚拟环境退至上一次激活的虚拟环境。
(d:\study) C:\Users\Administrator>conda deactivate
(study) C:\Users\Administrator>conda deactivate
(base) C:\Users\Administrator>
复制虚拟环境
复制虚拟环境使用如下命令格式:conda create -n 新环境名字 --clone 旧环境名字
。
(base) C:\Users\Administrator>conda create -n study2 --clone study
Source: C:\ProgramData\Anaconda3\envs\study
Destination: C:\ProgramData\Anaconda3\envs\study2
Packages: 19
Files: 0
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate study2
#
# To deactivate an active environment, use
#
# $ conda deactivate
(base) PS C:\Users\Administrator> conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
study C:\ProgramData\Anaconda3\envs\study
study2 C:\ProgramData\Anaconda3\envs\study2
d:\study
删除虚拟环境
删除虚拟环境的命令格式为conda remove -n 虚拟环境名称 --all
。
注意!当前虚拟环境不能删除,必须退出之后再删除。
(study2) C:\Users\Administrator>conda remove -n study2 --all
CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again
(base) C:\Users\Administrator>conda remove -n study2 --all
Remove all packages in environment C:\ProgramData\Anaconda3\envs\study2:
## Package Plan ##
environment location: C:\ProgramData\Anaconda3\envs\study2
The following packages will be REMOVED:
blas-1.0-mkl
certifi-2021.5.30-py36haa95532_0
icc_rt-2019.0.0-h0cc432a_1
intel-openmp-2021.3.0-haa95532_3372
mkl-2019.4-245
mkl-service-2.3.0-py36h196d8e1_0
mkl_fft-1.3.0-py36h46781fe_0
mkl_random-1.0.4-py36h343c172_0
numpy-1.17.0-py36h19fb1c0_0
numpy-base-1.17.0-py36hc3f5095_0
pip-21.0.1-py36haa95532_0
python-3.6.13-h3758d61_0
setuptools-52.0.0-py36haa95532_0
six-1.16.0-pyhd3eb1b0_0
sqlite-3.36.0-h2bbff1b_0
vc-14.2-h21ff451_1
vs2015_runtime-14.27.29016-h5e58377_2
wheel-0.37.0-pyhd3eb1b0_0
wincertstore-0.2-py36h7fe50ca_0
Proceed ([y]/n)?y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(base) C:\Users\Administrator>conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
study C:\ProgramData\Anaconda3\envs\study
d:\study
导出当前虚拟环境
导出当前虚拟环境的命令格式为conda env export --file 文件名.yaml
。
注意!文件名与环境名无关。
(study) C:\Users\Administrator> conda env export --file study3.yaml
(study) C:\Users\Administrator>
study3.yaml
的文件内容为:
name: study
channels:
- defaults
dependencies:
- blas=1.0=mkl
- certifi=2021.5.30=py36haa95532_0
- icc_rt=2019.0.0=h0cc432a_1
- intel-openmp=2021.3.0=haa95532_3372
- mkl=2019.4=245
- mkl-service=2.3.0=py36h196d8e1_0
- mkl_fft=1.3.0=py36h46781fe_0
- mkl_random=1.0.4=py36h343c172_0
- numpy=1.17.0=py36h19fb1c0_0
- numpy-base=1.17.0=py36hc3f5095_0
- pip=21.0.1=py36haa95532_0
- python=3.6.13=h3758d61_0
- setuptools=52.0.0=py36haa95532_0
- six=1.16.0=pyhd3eb1b0_0
- sqlite=3.36.0=h2bbff1b_0
- vc=14.2=h21ff451_1
- vs2015_runtime=14.27.29016=h5e58377_2
- wheel=0.37.0=pyhd3eb1b0_0
- wincertstore=0.2=py36h7fe50ca_0
prefix: C:\ProgramData\Anaconda3\envs\study
还原导出的虚拟环境
还原导出的虚拟环境的命令格式为:conda env create -f 文件名
还原时,不能存在与原环境重复的环境
(study) C:\Users\Administrator>conda env create -f ./study3.yaml
CondaValueError: prefix already exists: C:\ProgramData\Anaconda3\envs\study
删除本机study
环境重新执行命令。
(base) C:\Users\Administrator>conda env create -f ./study3.yaml
Collecting package metadata (repodata.json): done
Solving environment: done
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate study
#
# To deactivate an active environment, use
#
# $ conda deactivate