很多小伙伴在學(xué)習(xí)使用 python 進行數(shù)據(jù)科學(xué)工作的時候,可能會遇到一些工具沖突的情況。這個時候單獨使用 pip 就不能較好的解決包沖突的問題了。接下來小編要介紹的這個工具,是一個獨立于 python 之外的包管理工具,他就是 conda。
許多人認(rèn)為conda和pip功能幾乎完全相同,所以使用pip就足夠了。但實際上它們的用途其實是不同的。pip的主要用途是從python的pypi上下載安裝包,并進行包的管理工具,管理對象是python的第三方庫;而conda的作用不僅僅是對第三方庫進行管理,它還可以管理編譯器。所以pip只是包管理器,而conda是包和環(huán)境管理器。此外,他們安裝的文件也有所不同,pip安裝打包為wheels或源代碼分發(fā)的python軟件,而conda可以安裝包含用任何語言編寫的軟件的包,也就是說,conda包不僅僅只限于python軟件,也有可能包含C或C++庫,R語言包或者其他軟件。
conda與pip的另外一大區(qū)別就是,conda可以創(chuàng)建包含不同版本的python或者其他軟件包的隔離環(huán)境,比如python3.6版本和python2.7版本。這對使用數(shù)據(jù)科學(xué)工具相當(dāng)有用,因為有些數(shù)據(jù)科學(xué)工具對python版本有所要求,不同的工具要求不同則會產(chǎn)生沖突,這樣就不能將他們安裝到單個環(huán)境中。使用pip只能依賴python虛擬化工具來創(chuàng)建隔離環(huán)境,并不能將多個要求不同版本python的軟件包安裝到一起。
最后conda和pip還有一大區(qū)別就是它們對于依賴的管理。pip的依賴管理不會確保同時滿足所有包的依賴性,如果較早安裝的軟件包和稍后安裝的軟件包具有不兼容的依賴性版本,則有可能破壞環(huán)境。而使用conda會確保環(huán)境中安裝的所有包的所有要求。
因為conda與pip具有不同的功能,所以有些人就會選擇將這些工具結(jié)合起來。因為有些包只能用pip進行安裝,而conda提供了最流行的數(shù)據(jù)科學(xué)、機器學(xué)習(xí)和al框架,在使用conda進行包管理的時候,如果遇到?jīng)]有conda包但在pypi上有的情況,就可以使用pip進行解決。
以上關(guān)于conda介紹就到這里,更多conda的使用教程,敬請關(guān)注W3C技術(shù)頭條的后續(xù)文章。