Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项. 平时可以使用anaconda基本代替原本的python使用,它的包管理比较简单方便.管理虚拟环境也十分的方便好用,给大家大力推荐(真的是神器,你会发现用它甚至连opencv,pytorch,caffe都可以直接conda install 安装,十分简单.)
本文的绝大多数内容来源于官方网站,https://conda.io/docs/user-guide/tasks/index.html
感兴趣的同学可以自己点击查看,不过这个网站是英文的,我这里很多工作相当于是翻译了这个网站的一些内容啦~
不过相对于原本网站,我省略了一些基本用不到的功能,并将常用功能位置提前了,内容上可能比较多,需要查询指定功能的可以使用ctrl+f查询关键字~
关于安装Anaconda
关于Anaconda在windows上的安装可以参考我的这篇文章
安装完成之后可以使用如下命令添加清华镜像源,加速包的安装下载.
注意最后的pytorch的通道,linux和win使用的通道不同,可以按照自己的情况添加指定的通道.
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 --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels
# for pytorch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
详细情况可以参考:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
本文的绝大多数内容来源于官方网站,https://conda.io/docs/user-guide/tasks/index.html
关于conda管理
查看conda版本
conda --version
# or
conda -V
查看包括版本的更多信息
conda info
更新conda
conda update conda
关于环境管理(虚拟环境)
查看conda环境管理命令帮助信息
conda create --help
新建虚拟环境
# envname 指代你新建的环境的名称
conda create --name envname
# 后面会让你确认,输入y回车就好
创建出来的虚拟环境所在的位置为conda路径下的env/文件下,默认创建和当前python版本一致的环境.
删除虚拟环境
conda remove --name envname --all
创建指定python版本,指定包的虚拟环境
# 指定python版本
conda create -n envname python=3.4
# 指定包
conda create -n envname scipy
# 指定包版本
conda create -n envname scipy=0.15.0
# 指定python版本,以及多个包
conda create -n envname python=3.4 scipy=0.15.0 astroib numpy
给虚拟环境安装包
# 首先需要创建名称为envname的虚拟环境
conda install -n envname scipy
# 指定包版本
conda install -n envname scipy=0.15.0
如果想要在每个新建的环境中默认安装指定的包,可以修改 .condarc 配置文件,指定每次新建环境默认安装的包.
如果在某个特定的虚拟环境中不需要安装默认的包,可以使用如下命令新建虚拟环境:
conda create --no-default-packages -n envname python
从 environment.yml文件新建环境
conda env create -f environment.yml
# yml 文件的第一行设定了新环境的名称,具体情况可以查看以下网址
# https://conda.io/docs/user-guide/tasks/manage-environments.html#create-env-file-manually
查看当前环境安装的包
conda list
克隆一个环境
# clone_env 代指克隆得到的新环境的名称
# envname 代指被克隆的环境的名称
conda create --name clone_env --clone envname
查看conda环境信息
conda info --envs
构建相同的conda环境(不通过克隆的方法)
# 查看包信息
conda list --explicit
# 导出包信息到当前目录, spec-file.txt为导出文件名称,可以自行修改名称
conda list --explicit > spec-file.txt
# 使用包信息文件建立和之前相同的环境
conda create --name newenv --file spec-file.txt
# 使用包信息文件向一个已经存在的环境中安装指定包
conda install --name newenv --file spec-file.txt
激活新环境
# for windows
activate envname
# for liunx and MACOS
source activate envname
退出当前环境
# for windows
deactivate
# for linux and MACOS
source deactivate
# conda 退出环境的原理是从你的环境变量中删除当前环境的路径
查看当前环境
通常情况下,当前环境的名称会放在()或者[]中然后展示在你命令行的开头处,如下
(envname)$
如果没有展示,可以使用如下命令进行查看
conda info --envs
所有的环境会被展示,你当前所处的环境会被高亮,并且带有*号
关闭显示环境名称功能(默认开启)
conda config --set changeps1 false
开启显示环境名称功能
conda config --set changeps1 true
以列表形式展现所有环境
conda info --envs
# OR
conda env list
查看环境中包的列表
# 查看未激活的环境的包列表
conda list -n envname
# 查看激活的当前环境的包列表
conda list
# 参看某一环境中是否安装指定包
conda list -n envname numpy
在环境中使用pip
conda install -n envname pip
source activate envname
pip <pip_subcommand>
保存环境变量
略
分享环境
这里使用生成 environment.yml文件实现conda环境的分享
首先激活环境
win:
activate envname
Linux:
source activate envname
然后使用如下命令将当前激活的环境导出为文件 environment.yml
conda env export > environment.yml
你可以自己手动写一个yml文件
一个简单的版本:
name: stats
dependencies:
- numpy
- pandas
一个复杂的版本:
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
你可以使用如下方法排除默认通道
channels:
- javascript
- nodefaults
通道管理
# 将通道 new_channel 添加到通道列表顶端,优先级最高
conda config --add channels new_channel
# 将通道 new_channel 添加到通道列表顶端,优先级最高,和上一句效果一致
conda config --prepend channels new_channel
# 将通道 new_channel 添加到通道列表底端,优先级最低
conda config --append channels new_channel
# 展示通道情况
conda config --set show_channel_urls yes
# 要使conda使用旧方法并在任何列出的通道中安装最新版本的软件包
conda config --set channel_priority false
建立自定义通道
通道是conda查找包的路径。 使用和管理自定义渠道的最简单方法是在Anaconda.org上使用私有或公共存储库,以前称为Binstar.org。 如果您将Anaconda.org存储库指定为私有,那么只有您和您授予访问权限的人才能访问您的私有存储库。
如果您不希望将软件包上传到Internet,则可以通过Web服务器或使用file:// URL本地构建自定义存储库。
想要建立自定义通道,可以使用如下步骤:
- 如果你没有使用过 conda build ,使用如下命令安装 conda build
conda install conda-build
- 按照如下方式组织您希望服务的平台的子目录中的所有包:
channel/
linux-64/
package-1.0-0.tar.bz2
linux-32/
package-1.0-0.tar.bz2
osx-64/
package-1.0-0.tar.bz2
win-64/
package-1.0-0.tar.bz2
win-32/
package-1.0-0.tar.bz2
- 为各个平台运行 conda index 命令
conda index channel/linux-64 channel/osx-64 channel/linux-32 channel/win-64 channel/win-32
conda index 命令会在每个目录下建立一个 repodata.json 文件,conda 使用该文件来获取通道中所有包的元数据
注意:每次你新增或改动通道中的包,你必须重新运行conda index命令来更新
- 测试自定义频道,请使用Web服务器或使用file:// url为频道目录提供自定义频道。通过向自定义通道发送搜索命令进行测试。
举例:如果你想要测试/opt/channel/linux-64/ 目录下的自定义通道,使用如下命令:
conda search -c file://opt/channel/ --override-channels
注意:URL中不需要指定平台,codna会自动检测并添加平台
注意:选项 –override-channels 确保了conda只搜索你指定的通道,不会去搜索默认通道或者其他任何你加入的通道.
如果你正确的设置了你的私人仓库,你会得到如下输出:
Fetching package metadata: . . . .
后面会跟随输出找到的conda包,这说明你自己的通道建立完成
包管理
搜索包
# 在所有添加的仓库以及默认仓库中搜索包 numpy
conda search numpy
# 在默认仓库中搜索包 scipy
conda search --override-channels --channel defaults scipy
# 在指定通道/仓库中搜索包iminuit
conda search --override-channels --channel http://conda.anaconda.org/mutirri iminuit
安装包
# 向当前环境安装包 scipy
conda install scipy
# 向当前环境安装包 scipy 并指定版本
conda install scipy=0.15.0
# 向当前环境安装多个包
conda install scipy curl
# 向当前环境安装多个包,并指定包版本
conda install scipy=0.15.0 curl=7.26.0
# 向当前环境安装多个包,并指定包版本与python版本,一般情况下不用指定python版本
conda install scipy=0.15.0 curl=7.26.0 -n py34_env
# 向指定虚拟环境中安装指定包
conda install --name myenv scipy
从codna默认通道/官方通道安装包
1.使用浏览器访问 http://anaconda.org
2.以安装包bottleneck为例,在左上角的搜索框中输入bottleneck进行搜索
3.找到你想要的包,点击包名,查看详情页
详情页会展示包来源的通道的名称,在这个例子中通道名称为pandas
4.获取了通道名称后,使用conda install -c参数指定通道安装包,代码如下
conda install -c pandas bottleneck