Anaconda - conda 常用命令

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本地构建自定义存储库。
想要建立自定义通道,可以使用如下步骤:

  1. 如果你没有使用过 conda build ,使用如下命令安装 conda build
conda install conda-build
  1. 按照如下方式组织您希望服务的平台的子目录中的所有包:
 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 
  1. 为各个平台运行 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命令来更新

  1. 测试自定义频道,请使用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
发布了32 篇原创文章 · 获赞 21 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Wolf_xujie/article/details/103208624