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

news2024/10/4 5:18:03

大部分情况下,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等多种编程语言,以及大部分生信软件的安装。

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

综上所述,conda和pip在支持的语言方面有所不同。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.coloradmin.cn/o/2187411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python-线程与进程

进程 程序编写完没有运行称之为程序。正在运行的代码(程序)就是进程。在Python3语言中,对多进程支持的是multiprocessing模块和subprocess模块。multiprocessing模块为在子进程中运行任务、通讯和共享数据,以及执行各种形式的同步…

【Java数据结构】 链表

【本节目标】 1. ArrayList 的缺陷 2. 链表 3. 链表相关 oj题目 一. ArrayList的缺陷 上节课已经熟悉了ArrayList 的使用&#xff0c;并且进行了简单模拟实现。通过源码知道&#xff0c; ArrayList 底层使用数组来存储元素&#xff1a; public class ArrayList<E>…

探索Spring Boot:实现“衣依”服装电商平台

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

深入理解 CSS 浮动(Float):详尽指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩&#xff01;目录1. 什么是 CSS 浮动&#xff1f;2. CSS 浮动的历史背景3. 基本用法float 属性值浮动元素的行为 4. 浮动对文档流的影响5. 清除浮动clear 属性清除浮动的技巧1. 使用…

从零开始讲PCIe(1)——PCI概述

一、前言 在之前的内容中&#xff0c;我们已经知道了PCIe是一种外设总线协议&#xff0c;其前身是PCI和PCI-X&#xff0c;虽然PCIe在硬件上有了很大的进步&#xff0c;但其使用的软件与PCI系统几乎保持不变。这种向后兼容性设计&#xff0c;目的是使从旧设计到新设计的迁移更加…

【QGis】生成规则网格/渔网(Fishnet)

【QGis】生成规则网格/渔网&#xff08;Fishnet&#xff09; QGis操作案例参考 QGIS下载安装及GIS4WRF插件导入可参见另一博客-【QGIS】软件下载安装及GIS4WRF插件使用。 QGis操作案例 1、加载中国省级边界&#xff0c;QGis界面如下&#xff1a; 查看坐标系&#xff1a; 如…

详解JVM类加载机制

❝ 前几篇文章我们分别详细描述了 JVM整体的内存结构 JVM对象内存是如何布局的以及内存分配的详细过程 但是对JVM内存结构各个模块没有深入的分析&#xff0c;为了熟悉JVM底层结构&#xff0c;接下来将把JVM运行时数据区的各个模块逐一分析&#xff0c;体系化的理解JVM的各个模…

【S32K3 RTD LLD篇5】K344 ADC SW+HW trigger

【S32K3 RTD LLD篇5】K344 ADC SWHW trigger 一&#xff0c;文档简介二&#xff0c;ADC SW HW 触发2.1 软硬件平台2.2 SWADC 软件触发2.3 SWBCTUADC 软件BCTU触发2.4 PITTRIGMUXADC 硬件PIT TRIGUMX触发2.5 EMIOSBCTUHWADC硬件EMIOS BCTU触发2.6 EMIOSBCTUHW LISTADC硬件EMIOS …

【计算机毕业设计】springboot游戏分享网站

摘 要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合&#xff0c;利用java技术建设游戏分享网站&#xff0c;实现游戏分享的信息化。则对于进一步提高游戏分享管理发展&#xff0c;丰富游戏分享管理经验能起到不少的促进作用。 游戏分享网站能够…

Oracle架构之物理存储中各种文件详解

文章目录 1 物理存储1.1 简介1.2 数据文件&#xff08;data files&#xff09;1.2.1 定义1.2.2 分类1.2.2.1 系统数据文件1.2.2.2 撤销数据文件1.2.2.3 用户数据文件1.2.2.4 临时数据文件 1.3 控制文件&#xff08;Control files&#xff09;1.3.1 定义1.3.2 查看控制文件1.3.3…

【重学 MySQL】五十五、浮点和定点数据类型

【重学 MySQL】五十五、浮点和定点数据类型 种类选择数据精度说明浮点数据精度定点数据精度总结 精度误差说明浮点数据精度误差定点数据精度误差总结 示例注意事项开发中经验 在MySQL中&#xff0c;浮点和定点数据类型用于存储小数和实数。 种类 MySQL提供了两种主要的浮点数…

SuiteCRM系统 responseEntryPoint SQL注入复现(CVE-2024-36412)

0x01 产品描述&#xff1a; SuiteCRM是一款开源的CRM&#xff08;客户关系管理&#xff09;系统&#xff0c;它致力于为世界各地的用户提供高效、灵活和可定制的CRM解决方案。它为企业和组织提供了一套完整的客户关系管理解决方案&#xff0c;无论是中小型企业还是大型企业&…

Python和R及Julia妊娠相关疾病生物剖析算法

&#x1f3af;要点 算法使用了矢量投影、现代优化线性代数、空间分区技术和大数据编程利用相应向量空间中标量积和欧几里得距离的紧密关系来计算使用妊娠相关疾病&#xff08;先兆子痫&#xff09;、健康妊娠和癌症测试算法模型使用相关性投影利用相关性和欧几里得距离之间的关…

linux第二课:常用命令

Kali Linux&#xff0c;黑客必备神器。跟着我&#xff0c;带你从入门到入狱&#xff01; 第二课&#xff0c;常用命令。 1.whoami 翻译为中文&#xff1a;我是谁 用途&#xff1a;输出现在自己的用户身份(用户名) 参数&#xff1a;无参数 好吧&#xff0c;这透明度一调都不…

基于SpringBoot+Vue的汽车保险理赔系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

mysql UDF提权(实战案例)

作者&#xff1a;程序那点事儿 日期&#xff1a;2024/09/29 16:10 什么是UDF? 全称 User Define Function &#xff08;用户自定义函数&#xff09;UDF提权&#xff0c;就是通过自定义函数&#xff0c;实现执行系统的命令。 dll&#xff08;windows&#xff0c;dll文件是c语…

10.1 10.3 图DFS 中等 207 Course Schedule 210 Course Schedule Ⅱ

207 Course Schedule class Solution { public:bool hasCycle(int course ,unordered_map<int,vector<int>>& graph,vector<int>& visitStatus){//正在访问的结点再次被访问&#xff0c;存在环if(visitStatus[course] 1)return true;//该结点已经被…

【CViT】Deepfake Video Detection Using Convolutional Vision Transformer

文章目录 Deepfake Video Detection Using Convolutional Vision Transformerkey points**卷积视觉变压器**FLViT实验总结Deepfake Video Detection Using Convolutional Vision Transformer 会议/期刊:2021 作者: key points 提出了一种用于检测深度伪造的卷积视觉变压器…

Linux学习之路 -- 线程 -- 死锁及线程安全相关问题

在上文中&#xff0c;我们已经介绍了线程池的编写&#xff0c;下面补充一下线程的相关知识。 目录 1、线程安全与可重入 <1>概念 <2>区别联系 <3>常见线程不安全的情况 <4>常见的不可重入情况 2、死锁问题 <1>死锁概念 <2>死锁四…

sql-labs靶场第二关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①Order by判断列数 ②判断回显地方 ③爆库&#xff0c;查看数据库名称 ④爆表&#xff0c;查看security库的所有表 ⑤爆列&#xff0c;查看users表的所有…