1.Anaconda是什么?
Anaconda在英文中是“蟒蛇”,麻辣雞(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》
,表示像蟒蛇一樣性感妖嬈的身體。
這里,Anaconda指的是一個開源的Python發(fā)行版本,其包含了conda、Python等180多個科學(xué)包及其依賴項(xiàng)。 因?yàn)榘舜罅康目茖W(xué)包,Anaconda 的下載文件比較大(約 500 MB),如果只需要某些包,或者需要節(jié)省帶寬或存儲空間,也可以使用Miniconda這個較小的發(fā)行版(僅包含conda和 Python)。
Anaconda的圖標(biāo)
就像一個收尾互相咬住的“蟒蛇”。
你可能已經(jīng)安裝了 Python,那么為什么還需要 Anaconda?有以下3個原因:
- Anaconda 附帶了一大批常用數(shù)據(jù)科學(xué)包,它附帶了 conda、Python 和 150 多個科學(xué)包及其依賴項(xiàng)。因此你可以立即開始處理數(shù)據(jù)。
- 管理包。
Anaconda 是在 conda(一個包管理器和環(huán)境管理器)上發(fā)展出來的。
在數(shù)據(jù)分析中,你會用到很多第三方的包,而conda(包管理器)可以很好的幫助你在計(jì)算機(jī)上安裝和管理這些包,包括安裝、卸載和更新包。 - 管理環(huán)境。
比如你在A項(xiàng)目中用了 Python 2,而另一個項(xiàng)目B卻要求使用Python 3,而同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候 conda就可以幫助你為不同的項(xiàng)目建立不同的運(yùn)行環(huán)境。
還有很多項(xiàng)目使用的包版本不同,比如不同的pandas版本,不可能同時安裝兩個 Numpy 版本,你要做的應(yīng)該是,為每個 Numpy 版本創(chuàng)建一個環(huán)境,然后項(xiàng)目的對應(yīng)環(huán)境中工作。這時候conda就可以幫你做到。
2.安裝Anaconda
Anaconda 可用于多個平臺( Windows、Mac OS X 和 Linux)。你可以在Anaconda官網(wǎng)上找到安裝程序和安裝說明。根據(jù)你的操作系統(tǒng)是32位還是64位選擇對應(yīng)的版本下載。
實(shí)際上,你選擇對應(yīng)python2或python3的哪一個版本是無所謂的,它只代表安裝后缺省的python版本,因?yàn)槟憧梢詣?chuàng)建不同版本的環(huán)境,并可隨時切換。
安裝過程中,建議不選在將Anaconda目錄加入到PATH環(huán)境變量中,以免與單獨(dú)安裝的Python路徑產(chǎn)生沖突。執(zhí)行conda命令時,可打開Anaconda Prompt,這是Anaconda自帶的終端,啟動時會設(shè)置必要的環(huán)境變量,令你可運(yùn)行conda命令。若汝用普通的windows cmd命令,則可能會出現(xiàn)找不到命令的提示。
安裝Anaconda后,需更新所有包,以防因?yàn)槟承┌陌姹颈容^老舊,產(chǎn)生版本依賴關(guān)系錯誤。 在終端輸入更新所有包的命令:conda upgrade --all,并在提示是否更新時輸入y(Yes)讓更新繼續(xù)。
conda命令從conda cloud下載更新包,由于在境外,下載速度比較慢,甚至?xí)捎诒娝苤脑?,無法下載,報錯:CondaHTTPError: HTTP 000 CONNECTION FAILED之類的網(wǎng)絡(luò)錯誤,可以用下面的方法解決:
在終端中運(yùn)行如下命令:
conda config --add channels mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
添加清華大學(xué)的鏡像服務(wù)器。
如果用命令行添加不上,可以在用戶目錄找到.condarcw文件。這個配置文件在 ~/.condarc (Linux/Mac) 或 C:\Users\當(dāng)前用戶名.condarc (Windows):
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
如果使用conda安裝包的時候還是很慢,那么可以考慮使用pip來安裝,同樣把 pip 的鏡像源地址也改成國內(nèi)的,豆瓣源速度比較快。修改 ~/.pip/pip.conf (Linux/Mac) 或 C:\Users\當(dāng)前用戶名\pip\pip.ini (Windows) 配置:
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
3.管理包
安裝Anaconda后,就可以用conda命令方便的管理包了。
3.1 安裝包
命令:
conda install package_name
例如:安裝pandas,輸入
condda install pandas
安裝多個包,如同時安裝pandas、numpy包:
conda install pandas numpy
指定包的版本號:
conda install numpy=1.10
conda會自動安裝依賴項(xiàng),如scipy包依賴于numpy包,那么
conda install scipy
會自動安裝numpy包,如果還未安裝的話。
3.2 卸載包
命令:conda remove package_name
例如,卸載padas包:
conda remove pandas
3.3 更新包
命令:
conda update package_name
更新所有的包,加--all選項(xiàng):conda update -all
3.4 列出所有的包
命令:conda list
3.5 搜索包
命令:conda search search_term
例如,想檢查一下numpy包是否已經(jīng)安裝,可使用conda search num模糊查找列表中是否包含numpy包。
在conda中,anything is a package。conda本身可以看做是一個包,python環(huán)境也可以看做是一個包,anaconda也是一個包,因此除了普通的第三方包支持更新之外,這三個包也支持更新。
# 更新conda本身
conda update conda
# 更新anaconda應(yīng)用
conda update anaconda
#更新python,假設(shè)當(dāng)前python環(huán)境版本是3.6.3,而最新版本是3.6.3,那么就會升級到3.6.3。
conda update python
4.管理環(huán)境
conda可以為不同的項(xiàng)目創(chuàng)建不同的環(huán)境。
4.1 創(chuàng)建環(huán)境
命令:conda create --name env_name packages_name
--name選項(xiàng)可簡化為-n,指出要創(chuàng)建的環(huán)境名稱,并可以在創(chuàng)建環(huán)境時安裝包。
例如:conda create -n py3 pandas創(chuàng)建了名稱為py3的環(huán)境,并安裝pandas包。
創(chuàng)建環(huán)境的時候,可以指定python的版本:
conda create -n py3 python=3
環(huán)境py3中會安裝最新版本的python3。
conda create -n py3 python=3.6
指定使用3.6版本的python。
4.2 激活環(huán)境
windows中使用activate env_name命令,OS/X和linux中使用source activate env_name命令激活環(huán)境。
例如:activate py3進(jìn)入py3環(huán)境后可使用conda list命令查看py3
環(huán)境中已經(jīng)安裝的包。在新的環(huán)境中,可使用conda install package_name命令繼續(xù)安裝其他需要的包。
4.3 離開環(huán)境
命令:deactivate (windows適用)或source deactivate(OS/X或Linux適用)。
4.4 共享環(huán)境
如果你想向他人共享你自己創(chuàng)建的環(huán)境,以供其他項(xiàng)目用你項(xiàng)目的配置,主要是保持包的版本一致。就可以使用conda env export > enviroment.yml命令將源環(huán)境的包的配置數(shù)據(jù)保存到enviroment.yml文件中,其他項(xiàng)目就可以在目標(biāo)環(huán)境中,執(zhí)行命令conda env update -f path/to/enviroment.yml將目標(biāo)環(huán)境更新為與源環(huán)境完全一樣。
對于不使用conda的情況下,python的pip命令也是可以做到這一點(diǎn)的:
pip freeze > enviroment.txt #將環(huán)境配置導(dǎo)出到enviroment.txt文本文件中。
pip install -r /path/to/enviroment.txt #恢復(fù)環(huán)境
4.5 列出環(huán)境
命令:conda env list列出所有的環(huán)境,當(dāng)前激活的環(huán)境對應(yīng)的目錄前會顯示一個*號。
4.6 刪除環(huán)境
命令:conda env remove -n env_name