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

相關文章
相關標籤/搜索