3 回答
TA贡献1873条经验 获得超9个赞
我发现我首先使用 conda 只是因为它安装了二进制文件,而不是在包不存在的情况下尝试 pip。例如,在 conda 中安装 psycopg2 比在 pip 中容易得多。
https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/
Pip 代表 Pip 安装包,是 Python 官方认可的包管理器,最常用于安装发布在 Python 包索引 (PyPI) 上的包。pip 和 PyPI 都由 Python Packaging Authority (PyPA) 管理和支持。
简而言之,pip 是一个通用的 Python 包管理器;conda 是一个与语言无关的跨平台环境管理器。对于用户来说,最显着的区别大概就是这个:pip在任何环境下都安装python包;conda 在 conda 环境中安装任何包。如果您所做的只是在隔离环境中安装 Python 包,则 conda 和 pip+virtualenv 大多可以互换,对依赖项处理和包可用性进行模数处理。我所说的隔离环境是指 conda-env 或 virtualenv,您可以在其中安装软件包而无需修改系统 Python 安装。
如果我们只关注 Python 包的安装,则 conda 和 pip 服务于不同的受众和不同的目的。如果您想在现有系统 Python 安装中管理 Python 包,conda 帮不了你:按照设计,它只能在 conda 环境中安装包。例如,如果您想使用许多依赖外部依赖项的 Python 包(NumPy、SciPy 和 Matplotlib 是常见示例),同时以有意义的方式跟踪这些依赖项,pip 无法帮助您:按照设计,它管理 Python 包并且仅管理 Python 包。
Conda 和 pip 不是竞争对手,而是专注于不同用户群体和使用模式的工具。
TA贡献1852条经验 获得超7个赞
注意:以下建议现已成为官方文档的一部分。
“目前(2019 年)关于何时使用
conda
vs.安装某些东西的智慧是什么pip
? ”
Anaconda Inc 的 Jonathan Helmus 在“在 Conda 环境中使用 Pip ”一文中很好地总结了这一点。以下是最终最佳实践建议的摘录:
最佳实践清单
pip
仅在之后使用conda
安装尽可能多的需求
conda
,然后使用pip
pip 应该与
--upgrade-strategy "only-if-needed"
(默认)一起运行不要使用
pip
与--user
论证,避免所有的“用户”安装使用 Conda 环境进行隔离
创建康达环境隔离的任何更改
pip
品牌由于硬链接,环境占用的空间很小
应注意避免
pip
在root [ base ] 环境中运行如果需要更改,请重新创建环境
一旦
pip
被使用conda
将不会意识到变化要安装其他 Conda 软件包,最好重新创建环境
文本文件中的存储
conda
和pip
要求
可以
conda
通过--file
参数传递包要求
pip
接受带有-r
或的 Python 包列表--requirements
conda env
将根据具有conda
和pip
要求的文件导出或创建环境
TA贡献1788条经验 获得超4个赞
这就是我所做的:
激活您的 conda 虚拟环境
使用 pip 安装到你的虚拟环境中
如果您遇到任何兼容性问题,请使用 conda
我最近遇到了这个,当 numpy / matplotlib 吓坏了,我使用 conda 构建来解决这个问题。
添加回答
举报