1. 程式人生 > 實用技巧 >conda install和pip install區別

conda install和pip install區別

conda ≈ pip(python包管理) + virtualenv(虛擬環境) + 非python依賴包管理

級別不一樣conda和yum比較類似,可以安裝很多庫,不限於Python。conda是建立一個區域性的環境,並安裝相應包;pip是安裝包到原有的環境中。

pip install會檢查一些依賴包並給你安裝,而conda的這種檢查更多,甚至會把你已有的卸了替換成他認為合適的...反正conda我只是拿來管理,安裝一直是pip install...conda install真心不太喜歡亂檢測亂適配....

1.pip只能安裝python包,而conda可以安裝由任何語言編寫的包

2.pip不能建立虛擬環境,需要藉助另外的包,例如virtualenv
,而conda可以建立虛擬環境。

3.pip是按照python時自帶的,而conda需要安裝anaconda才能用。

pip pip install xxx,在特定環境裡使用pip,下載的包會存在特定環境的目錄裡面,例如:
D:\Anaconda3\envs\nlp\Lib\site-packages\fasttext使用pip uninstallxxx,包就解除安裝掉了,也可以用
conda remove--name nlp--all 來刪除環境
conda conda install xxx,不管在什麼環境下載的包,都統一放在一個目錄裡面:
D:\Anaconda3\pkgs\fasttext這個fasttext裡面也有site-packages資料夾
在某個環境下面下載了某個包,再到另外一個環境下載同樣的包,conda會自動在上面的目錄裡面找,如果有,就不會重複下載,而是將這個包的site-packages下的檔案複製到當前環境下(和直接pip install一樣)使用conda uninstall xxx時,和pip uninstall一樣,刪除了當前環境site-packages裡面的包內容,但是在上述目錄裡面還存在這這個包,此時再到另外一個環境下載這個包,還是將site-packages複製一份到當前環境下,做到了一次下載,到處使用。

連結:https://www.zhihu.com/question/395145313/answer/1230725052

pip是用來安裝python包的,安裝的是python wheel或者原始碼的包。從原始碼安裝的時候需要有編譯器的支援,pip也不會去支援python語言之外的依賴項。

conda是用來安裝conda package,雖然大部分conda包是python的,但它支援了不少非python語言寫的依賴項,比如mkl cuda這種c c++寫的包。然後,conda安裝的都是編譯好的二進位制包,不需要你自己編譯。所以,pip有時候系統環境沒有某個編譯器可能會失敗,conda不會。這導致了conda裝東西的體積一般比較大,尤其是mkl這種,動不動幾百兆甚至一G多。

然後,conda功能其實比pip更多。pip幾乎就是個安裝包的軟體,conda是個環境管理的工具。conda自己可以用來建立環境,pip不能,需要依賴virtualenv之類的。意味著你能用conda安裝python直譯器,pip不行。這一點我覺得是conda很有優勢的地方,用conda env可以很輕鬆地管理很多個版本的python,pip不行。

然後是一些可能不太容易察覺的地方。conda和pip對於環境依賴的處理不同,總體來講,conda比pip更加嚴格,conda會檢查當前環境下所有包之間的依賴關係,pip可能對之前安裝的包就不管了。這樣做的話,conda基本上安上了就能保證工作,pip有時候可能裝上了也不work。不過我個人感覺這個影響不大,畢竟主流包的支援都挺不錯的,很少遇到broken的情況。這個區別也導致了安裝的時候conda算依賴項的時間比pip多很多,而且重新安裝的包也會更多(會選擇更新舊包的版本)。

最後,pip的包跟conda不完全重疊,有些包只能通過其中一個裝。

https://www.zhihu.com/question/395145313

conda可以安裝的庫都是Anaconda公司或第三方打包、編譯,提交到anaconda伺服器的,包括一些python庫(肯定不全),也包括一些C++的庫。可能還有R語言的?

pip就是python官方的包管理。

conda中包括一些C++庫,一般都是和python的科學計算有關的。比如可以直接安裝這些C++庫:

  • conda install cudatoolkit
  • conda install mkl
  • conda install hdf5

當你通過conda安裝TensorFlow的時候:

  • conda install tensorflow-gpu

你就獲得了編譯連結到cuda和mkl加持的tensorflow庫,同時還有編譯連結到mkl上的numpy。

作者:王某某
連結:https://www.zhihu.com/question/395145313/answer/1247325175