使用 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 中? [复制]
pip/conda导出 requirements.txt 注意事项