【一文理解】conda install pip install 区别

news/2024/10/4 14:12:21 标签: conda, pip, python, conda install

大部分情况下,conda install & pip install 二者安装的package都可以正常work,但是混装多种package后容易版本冲突,出现各种报错。

目录

检查机制

支持语言

库的位置

环境隔离

编译情况


检查机制

conda有严格的检查机制,会配套安装依赖,能够保证当前安装的package安装好后能work,但是conda只检查用conda安装的package。例如,新安装的package需要依赖numpy ,本地已有使用pip安装的numpy(1.19.2),conda在新安装package时可能会视为没有numpy,然后通过conda再安装一个依赖版本的numpy(1.18.5)。这时候,两个numpy就会冲突。甚至报错DLL load failed: 找不到指定的模块。

pip的检查机制相对宽松,可以既检查conda安装过的package的也检查pip安装过的package。并不保证当前环境的所有包的所有依赖关系都同时满足。当某个环境所安装的包越来越多,产生冲突的可能性就越来越大。

支持语言

conda 是跨平台的通用包和环境管理器,可以支持多种语言,除了Python和R,conda还支持Ruby、Lua、Scala、Java、JavaScript、C/C++、Fortran等多种编程语言,以及大部分生信软件的安装。

pippython 官方推荐的包下载工具,它专注于为Python用户提供软件包安装、更新和卸载的功能。因此,pip主要支持的语言是Python。通过pip,Python用户可以轻松地从Python Package Index(Python包索引)中获取并安装所需的软件包。

综上所述,condapip在支持的语言方面有所不同。conda以其广泛的编程语言支持而著称,而pip则专注于Python语言的软件包管理。用户可以根据自己的需求和所使用的编程语言来选择合适的软件包管理工具。

库的位置

conda install:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

pip install:分两种情况,如果当前conda环境使用系统的的python,则库会被保存在 ~/.local/lib/python3.x/site-packages文件夹中;如果使用的是当前conda环境内置的python,则库会被保存到 anaconda3/envs/current_env/lib/site-packages中

环境隔离

conda 可以直接创建隔离的环境,例如conda create -n 环境名 python=3.6。conda通过在系统中创建独立的文件夹来实现环境隔离。每个环境都有自己的Python解释器、库和二进制文件。当激活一个conda环境时,conda会修改系统的环境变量,使得运行Python或相关工具时,实际上是在当前环境中运行。

  • conda可以管理多个Python版本,即使版本不同也能实现环境隔离。
  • conda的环境导出和复制功能使得在不同机器上复制相同环境变得简单。

pip 没有内置支持环境隔离,只能借助其他工具例如virtualenv or venv实现环境隔离,virtualenv和venv可以创建独立的Python虚拟环境,每个环境都有自己的Python解释器和库。

  • 使用virtualenv或venv创建虚拟环境后,用户可以在该环境中独立地安装和管理第三方库。
  • 激活虚拟环境后,pip会自动将第三方库安装到虚拟环境中,而不会影响到全局的Python环境。

编译情况

conda在安装软件包时,会尝试自动解决依赖关系,并下载和编译所需的依赖包。对于预编译的包(如二进制包),conda会优先使用这些包以加快安装速度。如果conda无法找到预编译的包,它可能会尝试从源代码编译软件包,但这通常不是其主要功能。

  • conda允许用户指定编译选项和配置,例如使用特定的编译器版本、启用或禁用特定的编译特性等。
  • 这些选项通常通过conda的构建脚本或配置文件来设置。

pip 里的软件包为wheel版或者源代码发行版。wheel属于已编译版的一种,但而源代码发行版必须要经过编译生成可执行程序后才能使用。pip在安装软件包时,也会尝试解决依赖关系,但它通常不会从源代码编译依赖包,而是下载已编译的二进制包(如果可用)。如果pip无法找到已编译的二进制包,它可能会尝试从源代码编译软件包,但这需要用户具备相应的编译环境和工具。

  • pip允许用户通过命令行选项或环境变量来指定编译选项和配置。
  • 然而,与conda相比,pip的编译选项和配置可能更加有限和复杂。

 


http://www.niftyadmin.cn/n/5690010.html

相关文章

SpringMVC2~~~

数据格式化 提交数据(比如表单)&#xff0c;对提交的数据进行转换和处理 基本数据类型可以和字符串自动转换 <a href"<%request.getContextPath()%>/addMonsterUI">添加妖怪</a> Controller Scope(value "prototype") public class …

Lua语言中函数的二进制码保存与查看

在Lua编程语言中&#xff0c;函数&#xff08;function&#xff09;和表&#xff08;table&#xff09;、线程&#xff08;thread&#xff09;等一样&#xff0c;都是变量[1]。而函数&#xff0c;本质上就是一个程序&#xff0c;所以是可以以二进制码的形式表达的。本文介绍如何…

异常场景分析

优质博文&#xff1a;IT-BLOG-CN 为了防止黑客从前台异常信息&#xff0c;对系统进行攻击。同时&#xff0c;为了提高用户体验&#xff0c;我们都会都抛出的异常进行拦截处理。 一、异常处理类 Java把异常当做是破坏正常流程的一个事件&#xff0c;当事件发生后&#xff0c;…

影刀---如何进行自动化操作

本文不是广告&#xff0c;没有人给我宣传费&#xff0c;只是单纯的觉得这个软件很好用 感谢大家的多多支持哦 本文 1.基本概念与操作&#xff08;非标准下拉框和上传下载&#xff09;非标准对话框的操作上传对话框、下载的对话框、提示的对话框 2.综合案例3.找不到元素怎么办&a…

win11/win10/windows下快安装并使用git

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Git 的特点&#xff1f;二、GIT安装方法1.打开GIT官网2.下载git安装程序整个安装过程基本上直接用默认选项就可以 总结 前言 提示&#xff1a;GIT介绍 GI…

YOLO11改进 | 卷积模块 | 减少冗余计算和内存访问的PConv【CVPR2023】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 本文介绍了一个新的部分卷积&#xff0…

react-问卷星项目(5)

实战 路由 路由设计&#xff0c;网址和页面的关系&#xff0c;就是从业务上分析需要哪些页面哪些页面内容可以抽离&#xff0c;业务流程要有入有出增加页面和Layout模版&#xff0c;模版就是抽离页面公共部分&#xff0c;比如都有顶部或者左侧导航&#xff0c;直接上代码&…

QT学习笔记1.2(QT的应用)

QT原生用于c的开发&#xff0c; 主要应用于电脑、桌面手机桌面软件的开发&#xff0c;主要是widget样式模板。 Qt Widgets、Qt Quick 和 Qt for Python 是 Qt 框架中的三种不同的技术&#xff0c;分别用于不同的应用场景。以下是它们的详细介绍和对比&#xff1a; 1. Qt Widg…