1. Anaconda 與 Conda 是什么?
1.1 什么是 Anaconda
Anaconda 是一個用于python/R科學(xué)計算和機器學(xué)習(xí)的開源工具(也稱為Python的一種發(fā)行版),支持 Linux, macOS, Windows, 包含了conda等眾多工具包及其依賴項,提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問題。到目前為止,它在全世界擁有超過1100萬用戶。
講到Anaconda,就不得不提到Miniconda 。
1.2 什么是 Miniconda
- 相較于Anaconda會預(yù)安裝眾多的軟件包,Miniconda就是一個迷你 Anaconda,只是預(yù)安裝conda、Python及其依賴;
- 用戶在使用過程中根據(jù)自己的需求再使用conda安裝軟件包或創(chuàng)建各種環(huán)境;
- 對于內(nèi)存有限,或者覺得Anaconda預(yù)安裝過于冗余的童鞋可以選擇Miniconda.
1.3 什么是 conda
Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*
conda是一種開源的包和環(huán)境管理系統(tǒng)。
- 適用語言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*
- 適用平臺:Windows, macOS, Linux
包管理
- 作為包管理工具,conda將所有的工具和第三方程序都當(dāng)作包來管理;
- conda 可以快速安裝,運行和更新包及其相關(guān)的依賴關(guān)系。
環(huán)境管理
- conda也是一個環(huán)境管理工具, 可以創(chuàng)建多個虛擬環(huán)境,并基于工作目的在切換環(huán)境使用不同版本的工具包。例如,電腦上除了默認(rèn)版本的Python,還可以創(chuàng)建其他各種版本python封閉環(huán)境,并在這些python版本之間進(jìn)行快速切換。
講到到Python包管理器,就不得不提到 pip。 pip是標(biāo)準(zhǔn)Python發(fā)行版自帶的包管理工具,用于查找、下載、安裝、卸載安裝包。
conda VS pip
pip
- pip是標(biāo)準(zhǔn)Python發(fā)行版的包管理器,只能用于Python;
- pip安裝包時并不會自動安裝相關(guān)的依賴關(guān)系;
- pip 無法管理Python 版本;
conda
- conda 安裝包時會自動安裝相關(guān)的依賴關(guān)系;
- conda 適用于Python, R等多種語言,可以安裝python包以外的其他軟件;
- conda 可以管理Python 版本;
- conda 可以創(chuàng)建和管理虛擬環(huán)境;
1.4 Anaconda 的優(yōu)點
- 快速下載和安裝1500 + Python/R 數(shù)據(jù)科學(xué)包
- 使用Conda 管理庫、依賴項和環(huán)境
- 使用scikit-learn、TensorFlow和Theano開發(fā)和訓(xùn)練機器學(xué)習(xí)和深度學(xué)習(xí)模型
- 使用Dask、NumPy、panda和Numba分析數(shù)據(jù)
- 使用Matplotlib、Bokeh、Datashader和Holoviews可視化結(jié)果
2. Anaconda 安裝
安裝條件
- 操作系統(tǒng): Windows >= 7.0, 64-bit macOS 10.10+, Linux( Ubuntu, RedHat, CentOS 6+)
- 磁盤大小:>5 GB
從Anaconda官網(wǎng)下載Anaconda ,下載Python 3.7 version ;
這個有兩種安裝模式:
64-Bit Graphical Installer (634 MB)
64-Bit Command-Line Installer (544 MB)
2.1 基于macOS GUI方式安裝
- 在Anaconda Distribution頁面下載安裝包:Anaconda3-5.3.1-MacOSX-x86_64.pkg
-
安裝:直接雙擊;
Anaconda Installation
- 接下來,一步步Continue;
-
最終出現(xiàn)如下界面,就表示安裝成功了。
anaconda installation
2.2 基于macOS的命令操作方式安裝
在Anaconda Distribution頁面下載安裝包: Anaconda3-5.3.1-MacOSX-x86_64.sh
bash ~/Downloads/Anaconda3-5.3.1-MacOSX-x86_64.sh
- 接著出現(xiàn):Please, press ENTER to continue ;
- 按下 Enter 鍵繼續(xù): 這一步就是瀏覽軟件許可協(xié)議,直接按Enter滑到底,輸入yes, 接下來出現(xiàn):
Anaconda3 will now be installed into this location:
/Users/Username/anaconda3 #anaconda3現(xiàn)在安裝路徑
\- Press ENTER to confirm the location #ENTER確認(rèn)anaconda3就安裝到/Users/Username下
\- Press CTRL-C to abort the installation #中止安裝
\- Or specify a different location below #在后面自己指定安裝路徑
- 這兒選擇默認(rèn)安裝路徑( /home/<user>/.bash_profile),直接點擊Enter;
好了,接下來泡杯茶,等一會兒。。。。。。。。。。。。 - 安裝好了之后,又要推銷Microsoft VScode;
我選擇no,因為我已經(jīng)安裝過了;
$ source ~/.bash_profile
$ python --version
Python 3.6.7 :: Anaconda, Inc.
$ vi ~/.bash_profile
Anaconda安裝好了,打開Anaconda Navigator檢查一下;
3. Anaconda Navigator 了解和使用
3.1 Anaconda Navigator
Anaconda Navigator是 Anaconda 內(nèi)置的桌面圖形用戶界面(GUI),不需要使用命令行就可以啟動應(yīng)用和管理conda包和環(huán)境。
Home: 當(dāng)前環(huán)境下的應(yīng)用程序
- 在Spyder IDE中運行Python
打開Spyder ,展示的是默認(rèn)界面(通過view -> Panes 調(diào)整):
左邊面板是編輯器;
右上方面板可以查看幫助,變量,當(dāng)前目錄文件系統(tǒng);
右下面板是IPython console: 可以查看運行結(jié)果或運行日志;
a.構(gòu)建一個hello.py程序
print("Hello Anaconda")
b. 運行(F5),右下角Console查看程序運行狀態(tài)
- 在Jupyter Notebook中運行Python
Try in Your Browser. No Installation Needed.
jupyter
啟動jupyter notebook
$ jupyter notebook
#New->Python3
print("Hello Anaconda")
#Run or Cell -> Run Cells
-
jupyterlab
基于Web 的下一代 Jupyter,集成了更多的功能;
jupyter lab Qt console
Qt console 作為一個非常輕量級的應(yīng)用程序,在很大程度上與終端是相似的;但是 它也擁有GUI的部分功能, 內(nèi)聯(lián)圖片,語法高亮......
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import jn
import math
x = np.linspace(0,4*math.pi)
for i in range(6):
plt.plot(x,jn(i,x))
Environments: Anaconda 下的環(huán)境管理;可以創(chuàng)建,克隆,導(dǎo)入,移除;
Learning: 學(xué)習(xí)資料
Community : Anaconda 社區(qū)
Document : Anaconda 教程
Developer Blog : Anaconda 開發(fā)者博客
4. conda 使用
conda 命令一覽:
conda clean: ??#刪除沒有用到的包和清除緩存
conda config: ??#修改 .condarc
中的配置;這個命令是模仿 git config而來;默認(rèn)寫入到~/.condarc
conda create: ??#用于創(chuàng)建新環(huán)境
conda info: ??#查看conda 詳細(xì)信息
conda install: ??#為指定的環(huán)境安裝包
conda list: ??#查看指定環(huán)境安裝包信息
conda remove: ??#移除指定環(huán)境指定安裝包
conda search: ??#搜索安裝包,并展示搜索結(jié)果
conda update: ??#更新安裝包
4.1 管理 conda
conda 版本查看
$ conda --version
conda 4.5.12
conda 版本更新
$ conda update conda
4.2 conda 管理環(huán)境
查看已安裝的環(huán)境
conda env list #conda info --envs
創(chuàng)建一個名為python36的環(huán)境,并安裝Python 3.6和pandas
conda create --name python36 python=3.6 pandas
激活某個環(huán)境
conda 4.6以后版本
Windows: conda activate python36
Linux and macOS: conda activate python36
conda 4.6以前版本
Windows: activate python36
Linux and macOS: source activate python36
退出當(dāng)前環(huán)境
conda deactivate
返回默認(rèn)環(huán)境
conda activate
分享環(huán)境:將當(dāng)前環(huán)境信息生成YAML文件
conda env export > environment.yaml
YAML文件格式:
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
利用YAML文件生成環(huán)境
conda env create -f environment.yaml
刪除一個已有的環(huán)境及其安裝包
conda remove --name myenv --all
4.3 conda 管理Python
創(chuàng)建一個包含Python 2.7的環(huán)境
conda create --name python27 python=2.7
conda activate python27
python -V
Python 2.7.15 :: Anaconda, Inc.
克隆環(huán)境python27: 可以使用此方法為環(huán)境重新命名
conda create --name myclone --clone python27
4.4 conda 管理包
查看當(dāng)前環(huán)境已經(jīng)安裝的包
conda list
查看指定環(huán)境中的安裝包
conda list -n python27
在Anaconda 庫中搜索包
conda search numpy #模糊搜索
conda search numpy=1.12
conda search numpy[subdir=linux-64] #指定系統(tǒng)
conda search --override-channels --channel http://conda.anaconda.org/mutirri iminuit #指定倉庫安裝包
安裝包到當(dāng)前環(huán)境
conda install numpy
安裝包到指定環(huán)境
conda install -n python27 numpy
同時安裝多個包到當(dāng)前環(huán)境
conda install numpy scipy
安裝指定版本包到指定環(huán)境
conda install -n python27 scipy=0.15.0
安裝包更新
conda update numpy
移除安裝包
conda remove -n python27 scipy
4.5 Anaconda channels管理
Channels are the path that conda takes to look for packages.
conda 安裝包時,首先在一系列倉庫搜索包,然后根據(jù)規(guī)則進(jìn)行優(yōu)先級排序(默認(rèn)):
- 根據(jù)channel priority排序;
- 根據(jù)version number排序;
- 根據(jù)build number排序;
- 選取優(yōu)先級最高的包進(jìn)行安裝;
安裝所有channel中最新版本, 如下設(shè)置
conda config --set channel_priority false
包安裝規(guī)則順序改為:
- 根據(jù)version number排序;
- 根據(jù)channel priority排序;
- 根據(jù)build number排序;
- 選取優(yōu)先級最高的包進(jìn)行安裝;
查看已有的 channels
conda config --get channels
添加 channels
conda config --add channels
添加新的channel到最高優(yōu)先級
conda config --add channels new_channel
添加新的channel到最低優(yōu)先級
conda config --append channels new_channel
Anaconda 三方源
Conda-forge 包含許多默認(rèn)channel中不存的packages;
Bioconda 是一個生物信息Channel, 提供超過6000個生物信息分析安裝包供conda使用。
conda config --add channels bioconda
conda config --add channels conda-forge
使用國內(nèi)Anaconda 倉庫的鏡像可以使conda加速安裝工具。
添加清華大學(xué)Anaconda 鏡像
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 Forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
移除channel
conda config --remove channels channelName
參考:
Installing Anaconda Distribution on macOS
Anaconda Navigator
Navigator Cheat Sheet
Conda
conda cheat sheet
清華大學(xué)開源軟件鏡像站-Anaconda 鏡像使用幫助