使用pip或conda来管理包?

时间:2016-01-20 07:32:27

标签: python pip conda

我使用matlab进行了很长时间的机器学习,并且最近已经切换到python并且安装某些软件包使用了它的软件包管理器pip并成功安装了许多软件包。几天前我开始使用conda,我之前安装的所有软件包都被覆盖了。

我真的想知道pip和conda之间的区别以及如果我使用pip来安装软件包而不是conda会发生什么?

3 个答案:

答案 0 :(得分:4)

pip和conda有共同的观点和差异。很难比Jake VanderPlas在这里做的更好地解释:https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/

对于您的用例,无论如何最好擦除您早期的pip安装包并仅依赖conda。如果由于conda中的软件包不可用而无法实现,则可以在 conda中安装pip ,然后使用conda install pip。 (来自上面的链接)。

答案 1 :(得分:3)

  

我真的想知道pip和conda之间的区别

请参阅What is the difference between pip and conda?

  

如果我使用pip来安装包而不是conda会发生什么?

一般来说(使用virtualenv除外)为整个系统(以root用户/管理员)或用户安装软件包。如你所知,Conda将软件包安装在自己的小世界/目录中,需要激活它们,覆盖pip的软件包。

作为一种解决方案,您可以先通过系统安装软件包,第二次安装软件包,然后再通过conda安装软件包。

因此,如果只需要系统包,请使用它。如果f.ex.太旧了,你可以使用pip install。

如果您需要特定的包,可能只针对一个项目,或者如果您需要与其他人共享项目,则conda似乎更合适。另请参阅What is the advantage of Pip over Anaconda?

答案 2 :(得分:2)

希望有更多知识渊博的人可以扩展,但看起来Conda是一个非PIP兼容的部署工具,适用于Python和非python工具/软件包。 Conda处理自己的Python和包的虚拟安装以及非python依赖项。

另一方面,PIP是特定于Python的部署实用程序;它不知道Conda,并且Conda不知道PIP。

了解上述情况后,Conda将不会意识到您之前部署的PIP包,因为两者不兼容。

幸运的是,因为这两个系统是分开的,所以如果你认为Conda不值得切换,你应该能够恢复你的PIP环境。否则,您可以尝试在Conda上安装matlib来模仿您在PIP上设置的内容:

conda install -c https://conda.anaconda.org/ioos matlab_kernel

补充阅读:

What is the difference between pip and conda?

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