conda包管理器可以创建,导出,列出,移除以及更新python环境,而且python环境可以使用不同版本的python,并且安装不同的安装包。在每一个环境之间进行切换称为激活环境。你也可以和别人共享环境文件。
创建环境
如果只有默认的python环境(即安装anaconda或miniconda时创建的环境),那么就无法执行环境切换操作。因为,执行环境切换操作的前提是至少拥有两个python环境。
使用conda create 命令可以创建新环境:
conda create --name ncl -c conda-forge ncl=6.4.0
# --name 参数用来指定环境名,即新创建的环境名为 ncl
# -c 参数用来指定源通道 conda-forge 为源通道别名
# ncl=6.4.0 为从源通道下载指定版本的包
上述命令是通过conda安装ncl,目前不支持windows系统安装,而且只支持python2.7版本,不支持python3.x版本。
获取关于 conda create 命令的更多帮助可执行:
conda create --help
##### 主要可选参数项 #######
-y, --yes 直接同意安装
--dry-run 仅显示上述操作会产生什么结果
-f, --force 强制安装
--file FILE 从指定文件读取包版本
-p fullpath 环境完整路径
--use-local 使用本地源构建
-n, --name 环境名
-c CHANNEL 指定通道
--channel-priority 源通道优先于软件包版本
--no-channel-priority 软件包版本优先于源通道
列出所有环境
想要了解目前安装了哪些python环境的时候,可以执行:
conda info --envs
或
conda env list
# 当前环境会有 * 标识
克隆环境
通过以下命令可以创建一个环境的克隆版本:
conda create --name ncl_clone --clone ncl
执行 conda env list 可以查看执行克隆操作后的环境信息。
共享环境
出于某些原因(比如:比如需要对你提供的脚本和库进行测试),可能要和别人共享环境。此时,可以提供一个 .yml 环境文件给共享者。
按照以下步骤生成环境文件:
Linux,OS X : source activate env_name
Windows : activate env_name
conda env export > env_name.yml
注意:
如果当前目录下已经存在了 .yml 环境文件,新文件将会覆盖原文件。
通过 .yml 文件创建环境:
conda env create -f env_name.yml
当然你要是不怕麻烦的话,也可以手动创建依赖环境。PS:我怕麻烦,这部分就不说了。
构建相同的conda环境
使用显示说明文件可以在相同的机器或不同机器上的相同操作系统下创建相同的环境。
执行以下命令创建说明文件:
conda list --explicit
文件如下:
# 执行以下命令可以使用此文件创建环境
# $ conda create --name <env> --file <this file>
# platform: osx-64
@EXPLICIT
https://repo.continuum.io/pkgs/free/osx-64/mkl-11.3.3-0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/numpy-1.11.1-py35_0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/openssl-1.0.2h-1.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/pip-8.1.2-py35_0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/python-3.5.2-0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/readline-6.2-2.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/setuptools-25.1.6-py35_0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/sqlite-3.13.0-0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/tk-8.5.18-0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/wheel-0.29.0-py35_0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/xz-5.2.2-0.tar.bz2
https://repo.continuum.io/pkgs/free/osx-64/zlib-1.2.8-3.tar.bz2
执行 :
conda list --explicit > spec_file_name.txt
可以在当前工作目录下创建说明文件。
使用 spec_file_name.txt 文件可以创建相同的环境:
conda install --name env_name --file spec_file_name.txt
注意:
通过说明文件是无法跨平台创建环境的。说明文件可以看出注释: platform: 行。 通过说明文件创建环境时,conda不会检查依赖,创建之前要确保文件没问题。
加入环境变量
conda环境可以包括已经保存在 Linux,OS X,Windows系统的环境变量。如果你需要一个环境存储密钥用于登录服务器或配置文件,可以通过创建脚本完成此操作。
Linux ,OS X
定位到conda环境目录,进入目录下后创建子目录和文件:
例如:
cd /home/user/anaconda3/envs/analytics
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
编辑上述两个脚本:
./etc/conda/activate.d/env_vars.sh 文件应该包含以下信息:
#!/bin/sh
export MY_KEY='secret-key-value'
export MY_FILE=/path/to/my/file/
./etc/conda/deactivate.d/env_vars.sh应该包含以下信息:
#!/bin/sh
unset MY_KEY
unset MY_FILE
当你执行 source activate analytics 命令时,环境变量MY_KEY 和 MY_FILE 会被设置为存储到文件中的值;当执行 source deactivate 命令时,会删除上述变量。
Windows
定位到本地环境目录,然后创建子目录和文件:
cd C:\Users\user\Anaconda3\envs\analytics
mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
type NUL > .\etc\conda\activate.d\env_vars.bat
type NUL > .\etc\conda\deactivate.d\env_vars.bat
.\etc\conda\activate.d\env_vars.bat 应该包含以下信息:
set MY_KEY='secret-key-value'
set MY_FILE=C:\path\to\my\file
.\etc\conda\deactivate.d\env_vars.bat 应包含以下信息:
set MY_KEY=
set MY_FILE=
当你执行 activate analytics 命令时,环境变量MY_KEY 和 MY_FILE 会被设置为存储到文件中的值;当执行 deactivate 命令时,会删除上述变量。
注意:
这些环境变量脚本可以是conda包的一部分,当激活了包含包的环境时,这些环境变量也会被激活。脚本文件名可以是任何名称,但是每个包可能都会创建脚本文件,因此要确保文件名不能重复。常见的脚本命名文件方式是:packagename_scriptname.sh/bat。