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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM