打算學(xué)習(xí) Python 來做數(shù)據(jù)分析的你馆类,是不是在開始時(shí)就遇到各種麻煩呢男娄?
- 到底該裝 Python2 呢還是 Python3 毅往?
- 為什么安裝 Python 時(shí)總是出錯(cuò)檩淋?
- 怎么安裝工具包呢芬为?
- 為什么提示說在安裝這個(gè)工具前必須先安裝一堆其他不明所以的工具萄金?
相信大多數(shù) Python 的初學(xué)者們都曾為環(huán)境問題而頭疼不已,但你并不孤獨(dú)媚朦,大家都是這么折騰過來的氧敢。為了在入門時(shí)少走彎路,并且讓高漲的積極性不至于太受打擊询张,這里推薦使用 Anaconda 來管理你的安裝環(huán)境和各種工具包孙乖。
本文介紹了Anaconda的使用,全文大綱如下:
- 為什么選擇 Anaconda
- 什么是 Anaconda
- 什么是 conda
- Anaconda 的優(yōu)點(diǎn)
- 如何安裝 Anaconda
- 如何管理 Python 包
- 如何管理 Python 環(huán)境
一份氧、為什么選擇Anaconda唯袄?
1.1 什么是 Anaconda?
Anaconda是專注于數(shù)據(jù)分析的Python發(fā)行版本蜗帜,包含了conda恋拷、Python等190多個(gè)科學(xué)包及其依賴項(xiàng)。作為好奇寶寶的你是不是發(fā)現(xiàn)了一個(gè)新名詞 conda厅缺,那么你一定會(huì)問 conda 又是什么呢蔬顾?
1.2 什么是 conda ?
conda 是開源包(packages)和虛擬環(huán)境(environment)的管理系統(tǒng)湘捎。
packages 管理: 可以使用 conda 來安裝诀豁、更新 、卸載工具包 窥妇,并且它更關(guān)注于數(shù)據(jù)科學(xué)相關(guān)的工具包舷胜。在安裝 anaconda 時(shí)就預(yù)先集成了像 Numpy、Scipy活翩、 pandas逞带、Scikit-learn 這些在數(shù)據(jù)分析中常用的包。另外值得一提的是纱新,conda 并不僅僅管理Python的工具包展氓,它也能安裝非python的包。比如在新版的 Anaconda 中就可以安裝R語言的集成開發(fā)環(huán)境 Rstudio脸爱。
虛擬環(huán)境管理: 在conda中可以建立多個(gè)虛擬環(huán)境遇汞,用于隔離不同項(xiàng)目所需的不同版本的工具包,以防止版本上的沖突簿废。對(duì)糾結(jié)于 Python 版本的同學(xué)們空入,我們也可以建立 Python2 和 Python3 兩個(gè)環(huán)境,來分別運(yùn)行不同版本的 Python 代碼族檬。
知道 是什么(what) 的同時(shí)歪赢,我們也需要問一問 為什么(why)。那么单料,為什么要選擇用Anaconda呢埋凯?
1.3 Anaconda 的優(yōu)點(diǎn)点楼?
Anaconda的優(yōu)點(diǎn)總結(jié)起來就八個(gè)字:省時(shí)省心、分析利器白对。
省時(shí)省心: Anaconda通過管理工具包掠廓、開發(fā)環(huán)境、Python版本甩恼,大大簡化了你的工作流程蟀瞧。不僅可以方便地安裝、更新条摸、卸載工具包悦污,而且安裝時(shí)能自動(dòng)安裝相應(yīng)的依賴包,同時(shí)還能使用不同的虛擬環(huán)境隔離不同要求的項(xiàng)目钉蒲。
分析利器: 在 Anaconda 官網(wǎng)中是這么宣傳自己的:適用于企業(yè)級(jí)大數(shù)據(jù)分析的Python工具塞关。其包含了720多個(gè)數(shù)據(jù)科學(xué)相關(guān)的開源包,在數(shù)據(jù)可視化子巾、機(jī)器學(xué)習(xí)帆赢、深度學(xué)習(xí)等多方面都有涉及。不僅可以做數(shù)據(jù)分析线梗,甚至可以用在大數(shù)據(jù)和人工智能領(lǐng)域椰于。
解決了 是什么 以及 為什么 的問題后,下面讓我們看一下 怎么做(How)仪搔。
二瘾婿、如何安裝Anaconda?
可以從這里下載 Anaconda 的安裝程序以及查看安裝說明烤咧。無論是 Windows偏陪、Linux 還是 MAC 的 OSX 系統(tǒng),都可以找到對(duì)應(yīng)的安裝軟件煮嫌。如果你的電腦是64位則盡量選64位版本笛谦。至于 Python 的版本是 2.7 還是 3.x,這里推薦你使用 Python3昌阿,因?yàn)?Python2 終將停止維護(hù)饥脑。可能目前市面上大多數(shù)教程使用的都還是 Python2懦冰,這也不用著急灶轰,因?yàn)樵?Anaconda 中可以同時(shí)管理兩個(gè) Python 版本的環(huán)境。
根據(jù)提示進(jìn)行安裝刷钢,完成后你大概會(huì)驚訝地發(fā)現(xiàn)電腦中多了好多應(yīng)用笋颤,不用擔(dān)心,我們一項(xiàng)項(xiàng)來看:
- Anaconda Navigator :用于管理工具包和環(huán)境的圖形用戶界面内地,后續(xù)涉及的眾多管理命令也可以在 Navigator 中手工實(shí)現(xiàn)伴澄。
- Jupyter notebook :基于web的交互式計(jì)算環(huán)境赋除,可以編輯易于人們閱讀的文檔,用于展示數(shù)據(jù)分析的過程秉版。
- qtconsole :一個(gè)可執(zhí)行 IPython 的仿終端圖形界面程序贤重,相比 Python Shell 界面茬祷,qtconsole 可以直接顯示代碼生成的圖形清焕,實(shí)現(xiàn)多行代碼輸入執(zhí)行,以及內(nèi)置許多有用的功能和函數(shù)祭犯。
- spyder :一個(gè)使用Python語言秸妥、跨平臺(tái)的、科學(xué)運(yùn)算集成開發(fā)環(huán)境沃粗。
安裝完成后粥惧,我們還需要對(duì)所有工具包進(jìn)行升級(jí),以避免可能發(fā)生的錯(cuò)誤最盅。打開你電腦的終端突雪,在命令行中輸入:
conda upgrade --all
在終端詢問是否安裝如下升級(jí)版本時(shí),輸入 y
涡贱。
有的情況下咏删,你可能會(huì)遇到找不到 conda 命令的錯(cuò)誤提示,這很可能是環(huán)境路徑設(shè)置的問題问词,需要添加conda環(huán)境變量:export PATH=xxx/anaconda/bin:$PATH
, 其中xxx替換成anaconda的安裝路徑督函。
至此,安裝完成激挪,下面讓我們看一下如何用 Anaconda 管理工具包和環(huán)境辰狡。
三、如何管理Python包垄分?
安裝一個(gè) package:
conda install package_name
這里 package_name 是需要安裝包的名稱宛篇。你也可以同時(shí)安裝多個(gè)包,比如同時(shí)安裝numpy 薄湿、scipy 和 pandas些己,則執(zhí)行如下命令:
conda install numpy scipy pandas
你也可以指定安裝的版本,比如安裝 1.1 版本的 numpy :
conda install numpy=1.10
移除一個(gè) package:
conda remove package_name
升級(jí) package 版本:
conda update package_name
查看所有的 packages:
conda list
如果你記不清 package 的具體名稱嘿般,也可以進(jìn)行模糊查詢:
conda search search_term
四段标、如何管理Python環(huán)境?
默認(rèn)的環(huán)境是 root炉奴,你也可以創(chuàng)建一個(gè)新環(huán)境:
conda create -n env_name list of packages
其中 -n
代表 name逼庞,env_name
是需要?jiǎng)?chuàng)建的環(huán)境名稱,list of packages
則是列出在新環(huán)境中需要安裝的工具包瞻赶。
例如赛糟,當(dāng)我安裝了 Python3 版本的 Anaconda 后派任,默認(rèn)的 root 環(huán)境自然是 Python3,但是我還需要?jiǎng)?chuàng)建一個(gè) Python 2 的環(huán)境來運(yùn)行舊版本的 Python 代碼璧南,最好還安裝了 pandas 包掌逛,于是我們運(yùn)行以下命令來創(chuàng)建:
conda create -n py2 python=2.7 pandas
細(xì)心的你一定會(huì)發(fā)現(xiàn),py2 環(huán)境中不僅安裝了 pandas司倚,還安裝了 numpy 等一系列 packages豆混,這就是使用 conda 的方便之處,它會(huì)自動(dòng)為你安裝相應(yīng)的依賴包动知,而不需要你一個(gè)個(gè)手動(dòng)安裝皿伺。
進(jìn)入名為 env_name 的環(huán)境:
source activate env_name
退出當(dāng)前環(huán)境:
source deactivate
另外注意,在 Windows 系統(tǒng)中盒粮,使用 activate env_name
和 deactivate
來進(jìn)入和退出某個(gè)環(huán)境鸵鸥。
刪除名為 env_name 的環(huán)境:
conda env remove -n env_name
顯示所有的環(huán)境:
conda env list
當(dāng)分享代碼的時(shí)候,同時(shí)也需要將運(yùn)行環(huán)境分享給大家丹皱,執(zhí)行如下命令可以將當(dāng)前環(huán)境下的 package 信息存入名為 environment 的 YAML 文件中妒穴。
conda env export > environment.yaml
同樣,當(dāng)執(zhí)行他人的代碼時(shí)摊崭,也需要配置相應(yīng)的環(huán)境讼油。這時(shí)你可以用對(duì)方分享的 YAML 文件來創(chuàng)建一摸一樣的運(yùn)行環(huán)境。
conda env create -f environment.yaml
至此爽室,你已跨入 Anaconda 的大門汁讼,后續(xù)就可以徜徉在 Python 的海洋中了。
祝學(xué)習(xí)愉快阔墩!
注:本文代碼示例參考自Udacity數(shù)據(jù)分析課程之Anaconda章節(jié)嘿架。
如果你想Python寫出風(fēng)格優(yōu)美的文章,請(qǐng)參考左手程序員啸箫,右手作家:你必須會(huì)的Jupyter Notebook
如果你想用Python做一些數(shù)據(jù)分析耸彪,但不知道怎么開始,請(qǐng)參考系列文章Python數(shù)據(jù)分析的起手式