使用 pip 或 conda 管理包? [复制]

Posted

技术标签:

【中文标题】使用 pip 或 conda 管理包? [复制]【英文标题】:Use pip or conda to manage packages? [duplicate] 【发布时间】:2016-04-25 22:37:13 【问题描述】:

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

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

【问题讨论】:

这能回答你的问题吗? What is the difference between pip and conda? 【参考方案1】:

希望有更多知识的人可以扩展,但看起来 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

【讨论】:

【参考方案2】:

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

对于您的用例,最好还是擦除您之前安装的 pip 软件包并仅依赖 conda。如果由于 conda 中的包不可用而导致无法执行此操作,您可以安装 pip in conda,然后使用 conda install pip。 (来自上面的链接)。

【讨论】:

【参考方案3】:

我很想知道pip和conda的区别

见What is the difference between pip and conda?

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

Pip 通常(使用 virtualenv 除外)为整个系统(以 root/可能以管理员身份)或为用户安装软件包。正如您已经指出的,Conda 将软件包安装在它自己的小世界/目录中,需要在其中激活它们,覆盖 pip 的软件包。

作为一种解决方案,您可以首先通过您的系统安装软件包,然后是 pip,然后是 conda。

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

如果你需要一个特定的包,可能只用于一个项目,或者如果你需要与其他人共享项目,conda 似乎更合适。另见What is the advantage of Pip over Anaconda?。

【讨论】:

以上是关于使用 pip 或 conda 管理包? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥有些包可以在 Pip 中升级,而不是在 Conda 中? [复制]

conda或pip下载一直没有反应也没有错误提示,求助!

pip/conda导出 requirements.txt 注意事项

win7 Anaconda 使用 conda命令

观点 | 别再使用pip安装TensorFlow了!用conda吧~

Anaconda入门