1. Anaconda 與 Conda 是什么?
1.1 什么是 Anaconda
Anaconda 是一個(gè)用于python/R科學(xué)計(jì)算和機(jī)器學(xué)習(xí)的開(kāi)源工具(也稱為Python的一種發(fā)行版),支持 Linux, macOS, Windows, 包含了conda等眾多工具包及其依賴項(xiàng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問(wèn)題。到目前為止,它在全世界擁有超過(guò)1100萬(wàn)用戶。
講到Anaconda,就不得不提到Miniconda 。
1.2 什么是 Miniconda
- 相較于Anaconda會(huì)預(yù)安裝眾多的軟件包,Miniconda就是一個(gè)迷你 Anaconda,只是預(yù)安裝conda、Python及其依賴;
- 用戶在使用過(guò)程中根據(jù)自己的需求再使用conda安裝軟件包或創(chuàng)建各種環(huán)境;
- 對(duì)于內(nèi)存有限,或者覺(jué)得Anaconda預(yù)安裝過(guò)于冗余的童鞋可以選擇Miniconda.
1.3 什么是 conda
Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*
conda是一種開(kāi)源的包和環(huán)境管理系統(tǒng)。
- 適用語(yǔ)言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*
- 適用平臺(tái):Windows, macOS, Linux
包管理
- 作為包管理工具,conda將所有的工具和第三方程序都當(dāng)作包來(lái)管理;
- conda 可以快速安裝,運(yùn)行和更新包及其相關(guān)的依賴關(guān)系。
環(huán)境管理
- conda也是一個(gè)環(huán)境管理工具, 可以創(chuàng)建多個(gè)虛擬環(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安裝包時(shí)并不會(huì)自動(dòng)安裝相關(guān)的依賴關(guān)系;
- pip 無(wú)法管理Python 版本;
conda
- conda 安裝包時(shí)會(huì)自動(dòng)安裝相關(guān)的依賴關(guān)系;
- conda 適用于Python, R等多種語(yǔ)言,可以安裝python包以外的其他軟件;
- conda 可以管理Python 版本;
- conda 可以創(chuàng)建和管理虛擬環(huán)境;
1.4 Anaconda 的優(yōu)點(diǎn)
- 快速下載和安裝1500 + Python/R 數(shù)據(jù)科學(xué)包
- 使用Conda 管理庫(kù)、依賴項(xiàng)和環(huán)境
- 使用scikit-learn、TensorFlow和Theano開(kāi)發(fā)和訓(xùn)練機(jī)器學(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+)
- 磁盤大?。?gt;5 GB
從Anaconda官網(wǎng)下載Anaconda ,下載Python 3.7 version ;
這個(gè)有兩種安裝模式:
64-Bit Graphical Installer (634 MB)
64-Bit Command-Line Installer (544 MB)
2.1 基于macOS GUI方式安裝
- 在Anaconda Distribution頁(yè)面下載安裝包:Anaconda3-5.3.1-MacOSX-x86_64.pkg
-
安裝:直接雙擊;
Anaconda Installation
- 接下來(lái),一步步Continue;
-
最終出現(xiàn)如下界面,就表示安裝成功了。
anaconda installation
2.2 基于macOS的命令操作方式安裝
在Anaconda Distribution頁(yè)面下載安裝包: 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, 接下來(lái)出現(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),直接點(diǎn)擊Enter;
好了,接下來(lái)泡杯茶,等一會(huì)兒。。。。。。。。。。。。 - 安裝好了之后,又要推銷Microsoft VScode;
我選擇no,因?yàn)槲乙呀?jīng)安裝過(guò)了;
$ source ~/.bash_profile
$ python --version
Python 3.6.7 :: Anaconda, Inc.
$ vi ~/.bash_profile
Anaconda安裝好了,打開(kāi)Anaconda Navigator檢查一下;
3. Anaconda Navigator 了解和使用
3.1 Anaconda Navigator
Anaconda Navigator是 Anaconda 內(nèi)置的桌面圖形用戶界面(GUI),不需要使用命令行就可以啟動(dòng)應(yīng)用和管理conda包和環(huán)境。
Home: 當(dāng)前環(huán)境下的應(yīng)用程序
- 在Spyder IDE中運(yùn)行Python
打開(kāi)Spyder ,展示的是默認(rèn)界面(通過(guò)view -> Panes 調(diào)整):
左邊面板是編輯器;
右上方面板可以查看幫助,變量,當(dāng)前目錄文件系統(tǒng);
右下面板是IPython console: 可以查看運(yùn)行結(jié)果或運(yùn)行日志;
a.構(gòu)建一個(gè)hello.py程序
print("Hello Anaconda")
b. 運(yùn)行(F5),右下角Console查看程序運(yùn)行狀態(tài)
- 在Jupyter Notebook中運(yùn)行Python
Try in Your Browser. No Installation Needed.
jupyter
啟動(dòng)jupyter notebook
$ jupyter notebook
#New->Python3
print("Hello Anaconda")
#Run or Cell -> Run Cells
-
jupyterlab
基于Web 的下一代 Jupyter,集成了更多的功能;
jupyter lab Qt console
Qt console 作為一個(gè)非常輕量級(jí)的應(yīng)用程序,在很大程度上與終端是相似的;但是 它也擁有GUI的部分功能, 內(nèi)聯(lián)圖片,語(yǔ)法高亮......
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 開(kāi)發(fā)者博客
4. conda 使用
conda 命令一覽:
conda clean: ??#刪除沒(méi)有用到的包和清除緩存
conda config: ??#修改 .condarc
中的配置;這個(gè)命令是模仿 git config而來(lái);默認(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)建一個(gè)名為python36的環(huán)境,并安裝Python 3.6和pandas
conda create --name python36 python=3.6 pandas
激活某個(gè)環(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
刪除一個(gè)已有的環(huán)境及其安裝包
conda remove --name myenv --all
4.3 conda 管理Python
創(chuàng)建一個(gè)包含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 庫(kù)中搜索包
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 #指定倉(cāng)庫(kù)安裝包
安裝包到當(dāng)前環(huán)境
conda install numpy
安裝包到指定環(huán)境
conda install -n python27 numpy
同時(shí)安裝多個(gè)包到當(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 安裝包時(shí),首先在一系列倉(cāng)庫(kù)搜索包,然后根據(jù)規(guī)則進(jìn)行優(yōu)先級(jí)排序(默認(rèn)):
- 根據(jù)channel priority排序;
- 根據(jù)version number排序;
- 根據(jù)build number排序;
- 選取優(yōu)先級(jí)最高的包進(jìn)行安裝;
安裝所有channel中最新版本, 如下設(shè)置
conda config --set channel_priority false
包安裝規(guī)則順序改為:
- 根據(jù)version number排序;
- 根據(jù)channel priority排序;
- 根據(jù)build number排序;
- 選取優(yōu)先級(jí)最高的包進(jìn)行安裝;
查看已有的 channels
conda config --get channels
添加 channels
conda config --add channels
添加新的channel到最高優(yōu)先級(jí)
conda config --add channels new_channel
添加新的channel到最低優(yōu)先級(jí)
conda config --append channels new_channel
Anaconda 三方源
Conda-forge 包含許多默認(rèn)channel中不存的packages;
Bioconda 是一個(gè)生物信息Channel, 提供超過(guò)6000個(gè)生物信息分析安裝包供conda使用。
conda config --add channels bioconda
conda config --add channels conda-forge
使用國(guó)內(nèi)Anaconda 倉(cāng)庫(kù)的鏡像可以使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é)開(kāi)源軟件鏡像站-Anaconda 鏡像使用幫助