有关pip与conda的介绍

Conda vs. Pip vs. Virtualenv 命令对比

任务Conda 命令Pip 命令Virtualenv 命令
安装包conda install $PACKAGE_NAMEpip install $PACKAGE_NAMEX
更新包conda update --name $ENVIRONMENT_NAME $PACKAGE_NAMEpip install --upgrade $PACKAGE_NAMEX
更新包管理器conda update condaLinux/macOS: pip install -U pip
Win: python -m pip install -U pip
X
卸载包conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAMEpip uninstall $PACKAGE_NAMEX
创建环境conda create --name $ENVIRONMENT_NAME pythonXcd $ENV_BASE_DIR; virtualenv $ENVIRONMENT_NAME
激活环境conda activate $ENVIRONMENT_NAME*Xsource $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate
停用环境conda deactivateXdeactivate
卸载环境conda env remove --name 环境名称
搜索可用包conda search $SEARCH_TERMpip search $SEARCH_TERMX
从指定来源安装包conda install --channel $URL $PACKAGE_NAMEpip install --index-url $URL $PACKAGE_NAMEX
列出已安装的包conda list --name $ENVIRONMENT_NAMEpip listX
创建依赖文件conda list --exportpip freezeX
列出所有环境conda info --envsX安装 virtualenv wrapper 后使用 lsvirtualenv
安装其他包管理器conda install pippip install condaX
安装 Pythonconda install python=x.xXX
更新 Pythonconda update python*XX

备注:

  • conda activate 只适用于 Conda 4.6 及更高版本。在 Conda 4.6 之前的版本中,可以使用以下命令:
    • Windows: activate
    • Linux 和 macOS: source activate
  • conda update python 会更新到该系列的最新版本,因此 Python 2.x 会更新到最新的 2.x 版本,Python 3.x 会更新到最新的 3.x 版本。

conda

conda 是一个开源的包管理器和环境管理器,最初由 Anaconda 提供,支持Python 以及其他语言(如 R、Ruby、Lua)的包管理。conda 不仅能安装和管理 Python 包,还能创建独立的虚拟环境,并安装其他语言的包。

Conda 命令

  • conda activate:激活指定的 Conda 环境,使当前终端会话使用该环境的 Python 和库。
  • conda clean:清理 Conda 缓存,删除不再需要的包和索引,释放磁盘空间。
  • conda compare:比较不同环境中的包或包版本。
  • conda config:配置 Conda 的行为,例如设置源、代理等。
  • conda create:创建一个新的 Conda 环境,并指定环境中的 Python 版本及其他包。
  • conda deactivate:停用当前激活的 Conda 环境。
  • conda doctor:检查 Conda 环境并解决常见问题。
  • conda env:管理 Conda 环境,例如创建、导出环境等。
  • conda info:显示 Conda 环境和配置信息,包括已安装的环境列表。
  • conda init:初始化 Conda,使得 Conda 能够在终端中自动激活和管理环境。
  • conda install:安装指定的包及其依赖,支持从 Conda 仓库或指定的源安装。
  • conda list:列出当前环境中已安装的所有包及其版本。
  • conda notices:显示 Conda 系统的通知信息。
  • conda package:管理 Conda 包,例如安装、更新和删除。
  • conda repoquery:查询 Conda 仓库中的包信息。
  • conda remove:卸载指定的包。
  • conda rename:重命名 Conda 环境。
  • conda run:在指定的环境中运行命令。
  • conda search:搜索 Conda 仓库中的包。
  • conda update:更新指定环境中的包或 Conda 本身。

pip

pipPython 的官方包管理工具,用于安装和管理 Python 包。它从 Python 包索引(PyPI)上下载并安装包

pip venv

venv 是 Python 内建的一个用于创建独立虚拟环境的工具。每个虚拟环境有自己的 Python 解释器和库集合,确保包之间的依赖不冲突。

区别

1. 总体

  • Pip

    • 用途:Pip 是 Python Packaging Authority 推荐的工具,用于从 Python 包索引(PyPI)安装 Python 软件包。
    • 包类型:仅限于 Python 包,安装的包通常是 .whl(wheel)格式,或者是源代码格式(需要编译)。
    • 依赖管理:Pip 安装包时,不会检查环境中的所有包的依赖关系。它会按顺序递归安装依赖,可能会导致依赖冲突或破坏环境的稳定性。
  • Conda

    • 用途:Conda 是一个跨平台的包和环境管理工具,可以从 Anaconda 仓库或 Anaconda Cloud 安装包,支持安装和管理包含 C/C++ 库、R 包等在内的多种软件。
    • 包类型:支持任何类型的软件包,不仅仅是 Python 包,还包括 C、C++、R 等。
    • 依赖管理:Conda 使用 SAT 解算器来确保环境中所有包的依赖关系得到满足,因此可以避免安装包时出现的版本冲突问题。

2. 环境管理

  • Pip:没有内建的环境管理功能,通常依赖 virtualenvvenv 来创建虚拟环境来隔离不同的项目和包依赖。
  • Conda:提供内建的环境管理功能,可以轻松创建和管理不同版本的 Python 及其包,适用于数据科学等领域,不同工具可能需要不同版本的 Python 或库。

3. 安装包时的依赖检查

  • Pip:安装包时没有自动检查依赖,可能会导致环境破损,尤其是在包间依赖关系复杂时。
  • Conda:使用 SAT 解算器自动检查依赖,确保安装的所有包的依赖关系都得到满足,减少环境破损的风险。

有时某些包只在 PyPI 上提供,而不在 Conda 仓库中。此时,使用 conda 安装可用的包,然后使用 pip 安装 PyPI 上的包。尽量优先使用 conda 安装包,尤其是那些包含底层依赖的包。只有在 conda 中找不到所需包时,再使用 pip 来安装 PyPI 上的包。Anaconda 仓库中提供了超过 1500 个包,包括最流行的数据科学、机器学习和 AI 框架。通过 conda 可以安装这些包,以及来自 conda-forge 和 bioconda 等频道的数千个额外包,所有这些都可以通过 conda 安装。尽管这些包的数量庞大,但与 PyPI 上超过 150,000 个包相比,它的数量仍然较少。偶尔会需要某些在 conda 中没有的包,但可以在 PyPI 上找到,并且可以通过 pip 安装。

特性CondaPip
支持的包类型任何类型的软件包(Python、C、C++、R等)仅支持 Python 包
依赖管理内建依赖检查,避免冲突没有内建依赖检查,可能导致环境破损
环境管理内建环境管理功能依赖 virtualenvvenv 来创建环境
安装源Anaconda 仓库与 CloudPyPI
是否需要编译器不需要需要,特别是从源代码安装时
包管理方式包是预编译的二进制文件包是源代码或 .whl 格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899644.shtml

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

相关文章

【Linux】调试器——gdb使用

目录 一、预备知识 二、常用指令 三、调试技巧 (一)监视变量的变化指令 watch (二)更改指定变量的值 set var 正文 一、预备知识 程序的发布形式有两种,debug和release模式,Linux gcc/g出来的二进制…

【Ubuntu常用命令】

1.将本地服务器文件或文件夹传输到远程服务器 文件 scp /data/a.txt administrator10.60.51.20:/home/administrator/ 文件夹 scp -r /data/ administrator10.60.51.20:/home/administrator/ 2.从远程服务器传输文件到本地服务器 scp administrator10.60.51.20:/data/a.txt /h…

golang 的time包的常用方法

目录 time 包方法总结 类型 time.Time 的方法 库函数 代码示例: time 包方法总结 类型 time.Time 的方法 方法名描述示例               ẵNow()获取当前时间和日期time.Now()Format()格式化时间为字符串time.Now().Format("2006-01-02 15…

Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据

作者:来自 Elastic James Williams 了解如何使用 Azure AI 文档智能解析包含文本和表格数据的 PDF 文档。 Azure AI 文档智能是一个强大的工具,用于从 PDF 中提取结构化数据。它可以有效地提取文本和表格数据。提取的数据可以索引到 Elastic Cloud Serve…

【ArcGIS操作】ArcGIS 进行空间聚类分析

ArcGIS 是一个强大的地理信息系统(GIS)软件,主要用于地理数据的存储、分析、可视化和制图 启动 ArcMap 在 Windows 中,点击“开始”菜单,找到 ArcGIS文件夹,然后点击 ArcMap 添加数据 添加数据 - 点击工具…

RabbitMQ消息相关

MQ的模式: 基本消息模式:一个生产者,一个消费者work模式:一个生产者,多个消费者订阅模式: fanout广播模式:在Fanout模式中,一条消息,会被所有订阅的队列都消费。 在广播…

缓存使用纪要

一、本地缓存:Caffeine 1、简介 Caffeine是一种高性能、高命中率、内存占用低的本地缓存库,简单来说它是 Guava Cache 的优化加强版,是当下最流行、最佳(最优)缓存框架。 Spring5 即将放弃掉 Guava Cache 作为缓存机…

2025年3月29日笔记

问题&#xff1a;创建一个长度为99的整数数组&#xff0c;输出数组的每个位置数字是几&#xff1f; 解题思路&#xff1a; 1.因为题中没有明确要求需要输入,所以所有类型的答案都需要写出 解法1&#xff1a; #include<iostream> #include<bits/stdc.h> using n…

hadoop相关面试题以及答案

什么是Hadoop&#xff1f;它的主要组件是什么&#xff1f; Hadoop是一个开源的分布式计算框架&#xff0c;用于处理大规模数据的存储和计算。其主要组件包括Hadoop Distributed File System&#xff08;HDFS&#xff09;和MapReduce。 解释HDFS的工作原理。 HDFS采用主从架构&…

微信小程序:数据拼接方法

1. 使用 concat() 方法拼接数组 // 在原有数组基础上拼接新数组 Page({data: {originalArray: [1, 2, 3]},appendData() {const newData [4, 5, 6];const combinedArray this.data.originalArray.concat(newData);this.setData({originalArray: combinedArray});} }) 2. 使…

Python之贪心算法

Python实现贪心算法(Greedy Algorithm) 概念 贪心算法是一种在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望导致结果是全局最优的算法策略。 基本特点 局部最优选择&#xff1a;每一步都做出当前看起来最佳的选择不可回退&#xff1a;一旦做出选择&#xf…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的 AOP:实现日志记录与性能监控

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、开篇整…

TCP/IP协议簇

文章目录 应用层http/httpsDNS补充 传输层TCP1. 序列号与确认机制2. 超时重传3. 流量控制&#xff08;滑动窗口机制&#xff09;4. 拥塞控制5. 错误检测与校验6. 连接管理总结 网络层ARP**ARP 的核心功能**ARP 的工作流程1. ARP 请求&#xff08;Broadcast&#xff09;2. ARP 缓…

SpringBoot分布式项目订单管理实战:Mybatis最佳实践全解

一、架构设计与技术选型 典型分布式订单系统架构&#xff1a; [网关层] → [订单服务] ←→ [分布式缓存]↑ ↓ [用户服务] [支付服务]↓ ↓ [MySQL集群] ← [分库分表中间件]技术栈组合&#xff1a; Spring Boot 3.xMybatis-Plus 3.5.xShardingSpher…

微服务架构中的精妙设计:环境和工程搭建

一.前期准备 1.1开发环境安装 Oracle从JDK9开始每半年发布⼀个新版本, 新版本发布后, ⽼版本就不再进⾏维护. 但是会有⼏个⻓期维护的版本. ⽬前⻓期维护的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的选择上&#xff0c;尽量选择⻓期维护的版本. 为什么选择JDK17? S…

Maven 构建配置文件详解

Maven 构建配置文件详解 引言 Maven 是一个强大的项目管理和构建自动化工具,广泛应用于 Java 开发领域。在 Maven 项目中,配置文件扮演着至关重要的角色。本文将详细介绍 Maven 构建配置文件的相关知识,包括配置文件的作用、结构、配置方法等,帮助读者更好地理解和应用 M…

【YOLO系列】基于YOLOv8的无人机野生动物检测

基于YOLOv8的无人机野生动物检测 1.前言 在野生动物保护、生态研究和环境监测领域&#xff0c;及时、准确地检测和识别野生动物对于保护生物多样性、预防人类与野生动物的冲突以及制定科学的保护策略至关重要。传统的野生动物监测方法通常依赖于地面巡逻、固定摄像头或无线传…

Hive UDF开发实战:构建高性能JSON生成器

目录 一、背景与需求场景 二、开发环境准备 2.1 基础工具栈 2.2 Maven依赖配置 三、核心代码实现

分布式特性对比

以下是关于 分片(Sharding)、一致性哈希、两阶段提交(2PC)、Paxos、Raft协议、数据局部性 的对比分析与关联性总结,涵盖核心机制、适用场景及相互关系: 一、概念对比与关联 概念核心目标关键特性典型应用场景与其它技术的关联分片(Sharding)数据水平拆分按规则(哈希、…

历史分钟高频数据

外盘期货高频分钟历史回测行情数据下载 链接: https://pan.baidu.com/s/1RUbAMxfiSyBlXfrwT_0n2w?pwdhgya 提取码: hgya通过美国期货高频交易所历史行情可以看到很多细节比如品种之一&#xff1a;FGBX_1min (1)在2024-02-29 11:14:00关键交易时刻&#xff0c;一笔大规模订单突…