pip install 和conda install有什么區(qū)別嗎?
點(diǎn)擊上方Python知識(shí)圈,設(shè)為星標(biāo)
回復(fù)1024獲取Python資料

閱讀文本大概需要 2?分鐘
點(diǎn)擊「閱讀原文」查看pk哥原創(chuàng)精品視頻。
大部分情況下沒什么區(qū)別。基本上,我更喜歡用pip,因?yàn)閲鴥?nèi)用pip網(wǎng)速比conda快哈哈,即便是用了國內(nèi)源的情況下。
正式一點(diǎn)地說,pip和conda功能相似,但仍然有一些區(qū)別,conda官方就有文章專門說這個(gè):https://www.anaconda.com/blog/understanding-conda-and-pip

pip是用來安裝python包的,安裝的是python wheel或者源代碼的包。從源碼安裝的時(shí)候需要有編譯器的支持,pip也不會(huì)去支持python語言之外的依賴項(xiàng)。
conda是用來安裝conda package,雖然大部分conda包是python的,但它支持了不少非python語言寫的依賴項(xiàng),比如mkl cuda這種c c++寫的包。然后,conda安裝的都是編譯好的二進(jìn)制包,不需要你自己編譯。所以,pip有時(shí)候系統(tǒng)環(huán)境沒有某個(gè)編譯器可能會(huì)失敗,conda不會(huì)。這導(dǎo)致了conda裝東西的體積一般比較大,尤其是mkl這種,動(dòng)不動(dòng)幾百兆甚至一G多。
然后,conda功能其實(shí)比pip更多。pip幾乎就是個(gè)安裝包的軟件,conda是個(gè)環(huán)境管理的工具。conda自己可以用來創(chuàng)建環(huán)境,pip不能,需要依賴virtualenv之類的。意味著你能用conda安裝python解釋器,pip不行。這一點(diǎn)我覺得是conda很有優(yōu)勢的地方,用conda env可以很輕松地管理很多個(gè)版本的python,pip不行。
然后是一些可能不太容易察覺的地方。conda和pip對于環(huán)境依賴的處理不同,總體來講,conda比pip更加嚴(yán)格,conda會(huì)檢查當(dāng)前環(huán)境下所有包之間的依賴關(guān)系,pip可能對之前安裝的包就不管了。這樣做的話,conda基本上安上了就能保證工作,pip有時(shí)候可能裝上了也不work。不過我個(gè)人感覺這個(gè)影響不大,畢竟主流包的支持都挺不錯(cuò)的,很少遇到broken的情況。這個(gè)區(qū)別也導(dǎo)致了安裝的時(shí)候conda算依賴項(xiàng)的時(shí)間比pip多很多,而且重新安裝的包也會(huì)更多(會(huì)選擇更新舊包的版本)。
最后,pip的包跟conda不完全重疊,有些包只能通過其中一個(gè)裝。
作者:知乎@馬索萌https://www.zhihu.com/question/395145313/answer/1230725052

-----------------------公眾號(hào):Python知識(shí)圈博客:www.pyzhishiquan.com知乎:Python知識(shí)圈微信視頻號(hào):菜鳥程序員 (分享有趣的編程技巧、Python技巧)bilibili:菜鳥程序員的日常(目前原創(chuàng)視頻:14,累計(jì)播放量:50萬)
一個(gè)學(xué)習(xí)Python的人,喜歡分享,喜歡搞事情!
長按下圖二維碼關(guān)注,和你一起領(lǐng)悟Python的魅力。
Python知識(shí)圈公眾號(hào)的交流群已經(jīng)建立,群里可以領(lǐng)取 Python 和人工智能學(xué)習(xí)資料,大家可以一起學(xué)習(xí)交流,效率更高,如果是想發(fā)推文、廣告、砍價(jià)小程序的敬請繞道!一定記得備注「交流學(xué)習(xí)」,我會(huì)盡快通過好友申請哦!通過好友后私聊我「學(xué)習(xí)資料」或者「進(jìn)群」都可以。
掃碼添加,備注:交流學(xué)習(xí)
往期推薦010203
