Anaconda / Conda 实践

1、环境


CentOS 7.6html

有预装 python 2.7python

2、Anaconda 与 Conda 区别


一、Anaconda

Anaconda 是Python的一种发行版。包含了:linux

(1)condadocker

(2)某个版本的pythoncentos

(3)预装好的packagesbash

Anaconda Distribution还有Anaconda Navigator,提供了界面化的操做。babel

其实还有Miniconda,只有最基本的conda和python。ide

二、Conda

conda是Anaconda下的包管理环境管理工具。也能够单独安装。工具

3、Conda 跟 pip 区别


一、包的来源不同

Conda 来源于 Anaconda repo and cloud (http://anaconda.org/ui

pip(pip Installs Packages) 来源于 PyPI (https://pypi.python.org/pypi

Anaconda存储库中提供了超过1,500个包,但与PyPI上提供的150,000多个软件包相比,它仍然很小。

二、包的种类不同

pip 是 python 官方自带的包管理工具,只能安装 python 软件。

Conda包不只限于Python软件。它们还可能包含C或C ++库,R包或任何其余软件。在这个意义上,它不像pip,更像是apt或yum等跨平台版本。

Conda 是一个与语言无关的跨平台环境管理器。

三、Conda 比 pip 多了环境管理功能

Pip没有内置的环境支持,除非使用第三方 virtualenv。

4、Anaconda (Conda) 的安装


一、下载

下载地址:https://www.anaconda.com/distribution/

有 Python 3.7 和 Python 2.7 两个版本提供下载:

咱们下载 Python 3.7版本,即Anaconda3-2018.12-Linux-x86_64.sh 文件。

二、安装

bash Anaconda3-2018.12-Linux-x86_64.sh

在当前路径安装后,会生成anaconda3目录和一些隐藏文件。

坑:安装报错

Anaconda3-2018.12-Linux-x86_64.sh: line 353: bunzip2: command not found

解决方案:安装 bzip2 包

yum install bzip2

三、添加环境变量

source .bashrc

四、如何判断安装成功?

conda --version

python --version(python 3.7版本会覆盖以前 centos 预装的2.7版本)

安装成功后,机器自带的 pip 和 python、python3 都会被Conda接管。

5、(Conda)环境管理


一、基本操做

# --------------------------

### 建立环境
conda create -n ds
conda create -n ds python=3.7 (推荐安装好 python,下面会说缘由)
conda create -n ds python=3.4 scipy=0.15.0 astroid babel
# 还能够经过yml的环境文件(下面会介绍)
# 克隆环境(下面会介绍)

# --------------------------

### 激活环境 
source activate ds
conda activate ds

# --------------------------

### 退出环境 
source deactivate
conda deactivate

# --------------------------

### 删除环境
conda remove -n ds --all

# --------------------------

### 列出全部环境(一开始有一个名为base的默认环境)
conda info -e

# --------------------------

二、克隆环境

conda create -n new_ds --clone ds

三、共享环境

用这个功能能够很好的迁移 python 项目的依赖环境,取代传统的 pip + virtualenv 的方式。

一、先激活环境

二、再导出环境配置文件
conda env export > environment.yml

三、再根据环境配置文件生成新环境
conda env create -f environment.yml

四、再激活新环境

一个典型的环境配置文件environment.yml以下:

name: ds
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
dependencies:
  - ca-certificates=2019.1.23=0
  - certifi=2019.3.9=py37_0 
  - pip:
    - ansiwrap==0.8.4
    - attrs==19.1.0 
prefix: /mnt/ds/anaconda3/envs/ds

记得修改prefix路径,由于每台机器的anaconda3安装路径可能不同。

坑1:共享环境不适用不一样的操做系统(好比 linux 迁移到 mac)

解决办法:仍是 docker 大法好啊!!

坑2:共享环境后,pip的包装不上

缘由未知……待解决

解决办法:仍是 docker 大法好啊!!

四、保存环境变量

五、构建相同的conda环境

我不太清楚 构建相同的conda环境 和 共享环境 有什么具体区别

六、实践要点【重点】

例若有 base(默认) 和 ds 两个环境。

(1)推荐建立新环境的时候,指定安装 python

即用conda create -n ds python=3.7取代conda create -n ds,否则会有一个坑,即用 pip 习惯性的去安装包的时候,由于 ds 环境没有装 python,天然就没有 pip 命令,那么 conda 的机制就会去使用 base 环境的 pip,那么装好的包虽然能在 ds 里用,但也能在 base 里用,最重要的是,若之后要作环境迁移,导出的 yml 文件,这个包只会存在 base 里,而不会在 ds 里!

(2)Jupyter notebook 选择 conda 环境

虽然机子上可能有多个 conda 环境,但坑的是 Jupyter notebook 始终都会选择 默认的 base 环境

解决办法:

是安装nb_conda_kernels包:conda install nb_conda_kernels

使用方法:

A、新建notebook时指定环境:

B、修改已存在的notebook的环境:

6、(Conda)渠道管理


7、(Conda)包管理


conda的设计理念:几乎将全部的工具、第三方包都当作package对待,甚至包括anaconda、python和conda自身

一、基本操做

# --------------------------

### 查找包
conda search numpy

# 按照全称查找
conda search --full-name python

# --------------------------

### 安装包
conda install numpy

# 指定版本
conda install scipy=0.15.0

# 指定环境 (其余的命令也能够用这种写法)
conda install -n python34 numpy 

# --------------------------

### 更新包
conda update -n python34 numpy
# 更新anaconda
conda update anaconda
# 更新conda
conda update conda
# 更新 python
conda update python

# --------------------------

### 删除包
conda remove -n python34 numpy

# --------------------------

### 查看安装了的包
conda list 
conda list zlib

# --------------------------

二、包的来源顺序

(1)conda / Anaconda.org

(2)pip

当conda和pip一块儿用于建立环境时会出现问题

解决方案:https://www.anaconda.com/using-pip-in-a-conda-environment/

三、添加镜像

# 添加Anaconda的TUNA镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

参考资料

https://docs.anaconda.com/anaconda/install/

https://docs.conda.io/projects/conda/en/latest/user-guide/overview.html

相关文章
相关标签/搜索