Anaconda虚拟环境管理(命令行)

当前Anaconda版本为2021.5

Anaconda可以看做是pipvirtualenv的结合体,既可以进行包管理,还可以进行虚拟环境管理。Anaconda安装成功后会自动创建一个base虚拟环境并安装默认包。

通过Anaconda Navigator可以以可视化界面创建、复制、删除等操作。

下面简要说明如何通过conda命令管理虚拟环境。

查看虚拟环境列表

conda env listconda info -econda 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:\studypython=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

猜你喜欢

转载自blog.csdn.net/mighty13/article/details/119791434