一、環境
CentOS 7.6
有預裝 python 2.7
二、Anaconda 與 Conda 區別
1、Anaconda
Anaconda
是Python的一種發行版。包含了:
(1)conda
(2)某個版本的python
(3)預裝好的packages
Anaconda Distribution還有Anaconda Navigator,提供了界面化的操作。
其實還有
Miniconda
,只有最基本的conda和python。
2、Conda
conda
是Anaconda下的包管理與環境管理工具。也可以單獨安裝。
三、Conda 跟 pip 區別
1、包的來源不一樣
Conda 來源於 Anaconda repo and cloud (http://anaconda.org/)
pip(pip Installs Packages) 來源於 PyPI (https://pypi.python.org/pypi)
Anaconda存儲庫中提供了超過1,500個包,但與PyPI上提供的150,000多個軟件包相比,它仍然很小。
2、包的種類不一樣
pip 是 python 官方自帶的包管理工具,只能安裝 python 軟件。
Conda包不僅限於Python軟件。它們還可能包含C或C ++庫,R包或任何其他軟件。在這個意義上,它不像pip,更像是apt或yum等跨平台版本。
Conda 是一個與語言無關的跨平台環境管理器。
3、Conda 比 pip 多了環境管理功能
Pip沒有內置的環境支持,除非使用第三方 virtualenv。
四、Anaconda (Conda) 的安裝
1、下載
下載地址:https://www.anaconda.com/distribution/
有 Python 3.7 和 Python 2.7 兩個版本提供下載:
我們下載 Python 3.7版本,即Anaconda3-2018.12-Linux-x86_64.sh
文件。
2、安裝
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
3、添加環境變量
source .bashrc
4、如何判斷安裝成功?
conda --version
python --version
(python 3.7版本會覆蓋之前 centos 預裝的2.7版本)
安裝成功后,機器自帶的 pip 和 python、python3 都會被Conda接管。
五、(Conda)環境管理
1、基本操作
# --------------------------
### 創建環境
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
# --------------------------
2、克隆環境
conda create -n new_ds --clone ds
3、共享環境
用這個功能可以很好的遷移 python 項目的依賴環境,取代傳統的 pip + virtualenv 的方式。
1、先激活環境
2、再導出環境配置文件
conda env export > environment.yml
3、再根據環境配置文件生成新環境
conda env create -f environment.yml
4、再激活新環境
一個典型的環境配置文件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 大法好啊!!
4、保存環境變量
略
5、構建相同的conda環境
略
我不太清楚 構建相同的conda環境 和 共享環境 有什么具體區別
6、實踐要點【重點】
例如有 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的環境:
六、(Conda)渠道管理
略
七、(Conda)包管理
conda的設計理念:幾乎將所有的工具、第三方包都當做package對待,甚至包括anaconda、python和conda自身!
1、基本操作
# --------------------------
### 查找包
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
# --------------------------
2、包的來源順序
(1)conda / Anaconda.org
(2)pip
當conda和pip一起用於創建環境時會出現問題
解決方案:https://www.anaconda.com/using-pip-in-a-conda-environment/
3、添加鏡像
# 添加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