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下的包管理環境管理工具。也能夠單獨安裝。ui

3、Conda 跟 pip 區別


一、包的來源不同

Conda 來源於 Anaconda repo and cloud (http://anaconda.org/)

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

相關文章
相關標籤/搜索