Anaconda用來管理Python的包和環(huán)境。Anaconda便于安裝數(shù)據(jù)科學(xué)工作中常用的軟件包。你還可以使用它來創(chuàng)建虛擬環(huán)境,當(dāng)你在進行多個項目的時候可以少走很多彎路。Anaconda可以簡化我們的工作,解決大量包管理和Python多版本的問題。
Anaconda包含了conda、Python和其它大約150個軟件包和它們所依賴的軟件。Anaconda的包體很大(大約500MB),因為它包含了大多數(shù)據(jù)科學(xué)相關(guān)的Python軟件包。如果你不需要所有的軟件包或者想要節(jié)省流量和存儲空間,可以使用一個叫Miniconda的程序,它只包含了canda和Python,你可以通過canda安裝所有可用的軟件包。
也許你已經(jīng)安裝了Python,或者在想為什么還需要Conda。首先,Anaconda包含了大量的數(shù)據(jù)科學(xué)軟件包,你可以直接開始進行數(shù)據(jù)處理工作;其次,使用conda來管理你的軟件包和環(huán)境可以避免將來遇到由不同工具庫版本引起的問題。
軟件包管理
軟件包管理通常用于在你的電腦上安裝類庫和其它軟件。你可能對pip比較熟悉,它是Python默認的類庫管理工具。Conda和pip很相似,但它所包含的軟件包主要圍繞于數(shù)據(jù)科學(xué)方面,而pip則更通用一些。可是conda并不像pip那樣只用于Python,它還能夠安裝非Python的軟件包。他是一個適用于任何軟件棧的包管理工具。也就是說,并不是所有的Python庫都能夠通過Anaconda和conda安裝。你仍需要使用pip和conda來安裝相關(guān)的軟件。
環(huán)境
除了軟件包管理,Conda還是一個虛擬環(huán)境管理工具。就像virtualenv和pyenv,或者其他流行的環(huán)境管理工具。
多環(huán)境允許在你進行多個項目的時候,將軟件包獨立隔絕。有時你在工作中需要依賴類庫的不同版本。比如,可能你有代碼需要使用Numpy的新特性,又或者使用那些已經(jīng)移除了的舊特性。但同時安裝兩個Numpy版本不太現(xiàn)實。所以,你需要為不同的項目搭建不同的環(huán)境來安裝不同的Numpy版本。
使用Python2 和 Python3中時經(jīng)常會遇到這些問題。你的舊代碼不能運行在Python3中,新代碼不能運行在Python2中。同時安裝這兩個版本會造成大量的困擾和bugs。所以最好把環(huán)境分離。
你能夠?qū)⒁粋€環(huán)境的軟件包導(dǎo)出到一個文件中,然后在你的代碼中引入。這也方便別人加載所有的依賴。Pip也有相似的功能pip freeze > requirements.txt。
下一步,我們會深入Anaconda的細節(jié)。首先會談到Anaconda的安裝,然后使用軟件包管理工具,最后創(chuàng)建和管理多個環(huán)境。