python系列&deep_study系列:conda install 和pip install有什么区别?




conda install 和pip install有什么区别?

本篇为分享贴,截图部分选自知乎,部分选自csdn,文字内容是结合自己实践进行总结。

环境引用的包在哪?

首先,一条命令:

python -m site

这条命令可以定位引用的包在哪里 ,当然也可以自己设置默认位置:

sudo vim /opt/conda/envs/<your-env>/lib/<python3.8>/site.py  # 是否sudo看情况

在这里插入图片描述

当前环境 pip install 安装到 base 环境怎么办?

更改其中红色方框部分为自己的虚拟环境的site-packages包(USER-SITE)和py38USER-BASE)即可,具体操作参看这条博客,这个操作能使得每次的conda环境都是你设置的这个,对于部分情况是很实用的,比如你在当前环境pip install,但却安装在了其他环境下。但是你要换个虚拟环境,那你可要遭老罪了。

ok,正文开始,很多情况下会出现,明明是在当前环境下pip install,但是却安装在了其他环境,按理说这种情况是不应该的,那出现这种情况怎么解决呢?就是上面所说的这部分内容。那为什么我会说按理说这种情况是不应该的呢?按的是谁的理呢?咱慢慢来看。

conda install 和 pip install 的安装位置有区别吗?

首先,conda installpip install安装的位置是不同的,位置不同就自然引出了优先级的问题(我分析是因为按路径寻找,放前面的先执行,有点像配置镜像源路径的那个意思),通过site命令我们可以发现base环境是在前面的,所以你在当前虚拟环境下pip install的包其实不在你的当前环境,而是在另外的环境(极有可能是base),这种情况呢也好解决:1、按照上文vim修改;2、换用conda pip install

在这里插入图片描述

混着用 pip install 和 conda install 会有什么后果?

但是新的问题又来了,如果是混着用(一会用conda install 一会用pip install)有什么影响呢?言之就是会引起环境的混乱,condapip都是包管理工具,二者各自管理各自的小弟,混着用很明显让两个大哥不对付,借用博主ZERO-XJ的例子:例如,你新安装的package会依赖numpy ,不过你已经安装numpy(e.g., 1.19.2),但是用pip安装的,不好意思,它会认为你没安装,然后用conda再安装一个依赖版本的numpy(e.g., 1.18.5)。这个时候,两个numpy可能就打架了。并且你pip listconda list显示的numpy版本可能不一致,结果不知道最后运行程序的时候调用了哪个版本的numpy

如果能避免上面的这种冲突,显然就是很好的情况,二者混用倒也不会出现太大问题,而且正如ZERO_XJ所讲的那样:

在这里插入图片描述

如何稳妥的配合使用 conda install 和 pip install ?

下面这些简直说出了我的心里话,能用pip install决不用conda install,我在很长的一段时间都陷于condapip的精神控制下,每次都感觉他能work我就烧香的虔诚。遇到的问题包括但不仅限于:1、在虚拟环境下刚pip install完成,报错跟我说还是缺少这个module;2、pip install安不上的conda install 竟然可以安装上;3、conda install 安装不上的pip install 竟然可以安装上。

在这里插入图片描述

conda install 和 pip install 的区别究竟是什么?

在这个讨论区还遇到了其他专业的回答,如下图,我建议大家有条件的可以去官网看一下官方解释的区别:

官网
https://www.anaconda.com/blog/understanding-conda-and-pip

在这里插入图片描述

其他专业的解释

当然,还有这位博主也给出了比较详细的解释。

在这里插入图片描述
如果对这部分感兴趣,想要深入了解,可以点击这个链接详细了解,如果连接失效请点击

完结撒花

conda的问题可能没有那么多,主要是慢,如果是你本身虚拟环境比较多的情况下可能要等十几分钟,这相比pip install “卡”就好了是很难接受的。但是会检查你其他相关的包依赖情况,能确保你配置的环境是work的,而pip install则只管安装,不会去检查其他的包依赖情况,从这个角度来讲pip的“包管理工具”就有点有名无实了,毕竟conda的功能比pip多的很。







鳗小鱼

conda install 和pip install有什么区别?

<think>好的,用户现在想了解conda installpip install区别以及使用场景。我需要结合之前的对话历史之前提供的引用信息来回答这个问题。首先,用户之前的问题是关于创建特定版本的conda环境,并且我在之前的回答中已经提到了混合使用condapip的安装步骤,同时也引用了相关的区别说明。现在用户直接提问两者的区别,需要更详细结构化的解释。 首先,我需要确认用户可能已经知道什么。用户已经使用过conda创建环境,并且安装了多个包,可能对conda的基本功能有所了解。但需要更深入的区别使用场景,尤其是为什么有时候需要用pip而不是conda,或者反过来。 根据引用[1][2],我之前提到conda install更稳定,能处理复杂依赖,而pip install用于conda没有的包。同时,conda适合数据科学机器学习,pip适合纯Python项目。现在需要将这些信息扩展,更详细地分点说明。 我需要考虑几个方面:包管理范围、依赖处理、环境管理、适用场景、安装来源、虚拟环境支持、跨平台兼容性等。同时,要比较两者的优缺点,并给出使用建议,比如优先使用conda,后使用pip,并注意安装顺序以避免冲突。 另外,用户可能关心实际例子,比如在之前的安装步骤中,为什么tensorflow 1.7需要用pip安装,而其他包用conda。这时候可以结合具体例子来说明,当conda源没有旧版本时,需要用pip安装。 还需要注意用户可能存在的误区,比如认为condapip可以随意混用,但实际上需要注意依赖冲突,尤其是在安装顺序上,先condapip,因为conda可能无法处理pip安装的包带来的依赖变化。 最后,要总结使用场景,给出明确的建议,帮助用户在实际操作中做出正确选择。同时,可能需要提醒用户遇到依赖冲突时的解决方法,比如固定版本或创建新环境。 需要确保回答结构清晰,分点明确,使用用户容易理解的语言,避免过于技术性的术语,但也要准确无误。可能需要使用例子来增强理解,例如在数据科学项目中如何选择工具,或者在纯Python开发时如何选择。 最后检查是否有遗漏的重要区别点,比如conda可以管理非Python依赖,而pip不行,这也是一个重要区别,需要提到。同时,conda的包通常预编译,安装更快,而pip有时需要从源码编译,可能导致安装时间较长或需要系统依赖。 现在将这些思考整理成结构化的回答,确保涵盖所有关键点,并参考之前的引用内容,同时结合用户的实际使用场景给出建议。</think>### Conda installpip install 的核心区别 --- #### **1. 包管理范围** - **Conda install** - 支持 **Python包 + 非Python依赖**(如C/C++库、系统工具) - 例:安装TensorFlow时自动处理CUDA、cuDNN等GPU依赖[^1] - **pip install** - **仅限Python包** - 例:安装`numpy`时不会自动处理底层BLAS/LAPACK库 --- #### **2. 依赖解析能力** | 工具 | 依赖处理策略 | 典型问题场景 | |------------|------------------------------|--------------------------------| | **Conda** | 全局依赖树分析(含跨语言依赖) | 自动处理`scipy`与`openblas`的版本匹配 | | **pip** | 仅处理Python层依赖 | 可能因系统环境导致`pyarrow`安装失败 | --- #### **3. 环境管理机制** - **Conda** - 支持 **完全隔离的环境**(包括Python解释器版本) - 可创建Python 3.6与3.9并存的环境 - **pip** - 依赖`virtualenv`实现环境隔离 - 无法直接管理Python解释器版本 --- #### **4. 安装来源对比** | 来源 | 包类型 | 更新速度 | 预编译质量 | |-------------|-----------------------|-----------|----------------| | Conda-forge | 预编译二进制包 | 较快 | 标准优化 | | PyPI | 源码包/二进制轮子(wheel) | 最快 | 依赖上传者配置 | --- ### **使用场景建议** #### **优先使用 Conda 的情况** 1. **数据科学项目**(需NumPy/Pandas等复杂依赖链) ```bash conda install numpy pandas scikit-learn ``` 2. **需要非Python依赖**(如安装OpenCV时需处理FFmpeg) 3. **跨平台兼容性要求高**(Conda自动处理Windows/Linux差异) #### **优先使用 pip 的情况** 1. **最新版本优先**(如PyTorch nightly build) ```bash pip install --pre torch -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html ``` 2. **纯Python工具链**(如Django/Flask Web开发) 3. **Conda源无目标包**(如某些小众库`python-pptx`) --- ### **混合使用规范** 1. **安装顺序原则** ```bash conda install tensorflow=1.7.0 # 先装核心库 pip install keras==2.1.6 # 后装PyPI包 ``` 2. **冲突解决技巧** - 遇到依赖冲突时: ```bash conda list --export > spec-file.txt # 导出环境配置 conda create -n new_env --file spec-file.txt ``` --- ### **典型问题示例** **Q: 为什么TensorFlow 1.7要用pip安装?** A:Conda官方源已停止维护TF1.x旧版本,但PyPI仍保留历史版本[^2] **Q: 能否用pip安装NumPy后conda安装SciPy?** A: 高风险!可能引发ABI兼容性问题,建议同渠道安装科学计算全家桶 --- 通过合理搭配使用,可提升环境稳定性。当遇到依赖冲突时,推荐使用`conda-lock`或`pip-tools`生成精确版本约束文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值