2016-01-20 30 views
5

我一直在使用matlab進行機器學習很長一段時間,最近已切換到python,並安裝某些軟件包使用它的軟件包管理器pip併成功安裝了許多軟件包。幾天前我開始使用conda,並且所有先前安裝的軟件包都被覆蓋。使用pip或conda來管理軟件包?

我真的很想知道pip和conda之間的區別,以及如果我使用pip安裝包而不是conda會發生什麼情況?

回答

2

希望有更多的知識豐富的人可以擴展,但它看起來像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

補充閱讀:

What is the difference between pip and conda?

https://conda.anaconda.org/menpo/channel/matlab

2

pip和conda有共同點和差異。這很難解釋比傑克範德普拉斯在這裏做的更好:https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/

對於你的用例,它是最好的無論如何擦拭你的早期點子安裝的軟件包,並只依靠conda。如果由於conda中的軟件包不可用而無法執行此操作,則可以在 conda中安裝pip ,然後使用conda install pip。 (從上面的鏈接)。

2

我真的想知道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?

相關問題