我一直在使用matlab進行機器學習很長一段時間,最近已切換到python,並安裝某些軟件包使用它的軟件包管理器pip併成功安裝了許多軟件包。幾天前我開始使用conda,並且所有先前安裝的軟件包都被覆蓋。使用pip或conda來管理軟件包?
我真的很想知道pip和conda之間的區別,以及如果我使用pip安裝包而不是conda會發生什麼情況?
我一直在使用matlab進行機器學習很長一段時間,最近已切換到python,並安裝某些軟件包使用它的軟件包管理器pip併成功安裝了許多軟件包。幾天前我開始使用conda,並且所有先前安裝的軟件包都被覆蓋。使用pip或conda來管理軟件包?
我真的很想知道pip和conda之間的區別,以及如果我使用pip安裝包而不是conda會發生什麼情況?
希望有更多的知識豐富的人可以擴展,但它看起來像Conda是一個非PIP兼容的部署工具,適用於Python和非Python工具/包。 Conda處理自己的Python和軟件包的虛擬安裝以及非python依賴項。
PIP另一方面是Python特定的部署實用程序;它不知道Conda,Conda不知道PIP。
瞭解了上述內容,Conda將不知道以前部署的PIP包,因爲兩者不兼容。
幸運的是,因爲這兩個系統是分開的,所以如果您決定Conda不值得切換,您應該能夠恢復PIP環境。否則,你可以嘗試在康達的matlib安裝模仿你有什麼對PIP設置:
暢達安裝-c https://conda.anaconda.org/ioos matlab_kernel
補充閱讀:
pip和conda有共同點和差異。這很難解釋比傑克範德普拉斯在這裏做的更好:https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/
對於你的用例,它是最好的無論如何擦拭你的早期點子安裝的軟件包,並只依靠conda。如果由於conda中的軟件包不可用而無法執行此操作,則可以在 conda中安裝pip ,然後使用conda install pip
。 (從上面的鏈接)。
我真的想知道PIP和暢達
的區別見What is the difference between pip and conda?
,如果我使用PIP要安裝的軟件包,而不是暢達會發生什麼?
普普(除了使用virtualenv)會爲整個系統(以root /可能以管理員身份)或爲用戶安裝軟件包。正如您已經注意到的,Conda將軟件包安裝在自己的小世界/目錄中,在那裏它們需要被激活,覆蓋pip的軟件包。
作爲一種解決方案,您可以通過您的系統首先安裝軟件包,第二個軟件包,第三個軟件包。
所以使用系統包,如果它是所有需要的。如果這太f.ex.,你可以使用pip install。
如果您需要特定的軟件包,可能只適用於一個項目,或者您需要與其他人分享項目,conda似乎更合適。另請參閱What is the advantage of Pip over Anaconda?。