当前位置: 首页 > news >正文

pip 和 conda 的安装区别

在决定使用 pip 和 conda 安装包时,了解这两个包管理器之间的主要区别非常重要。以下是细分:

1. 区别

1.1. Package Management System

  1. 包裹管理系统

Pip: :
Primarily used for Python packages.
主要用于 Python 包。
Installs packages from the Python Package Index (PyPI).
从 Python 包索引 (PyPI) 安装包。
Handles Python packages only; you may need to manage dependencies manually.
仅处理 Python 包;您可能需要手动管理依赖项。

Conda:
A general package manager that can manage packages written in any language (Python, R, Ruby, etc.).
一个通用的包管理器,可以管理以任何语言(Python、R、Ruby 等)编写的包。
Installs packages from the Anaconda repository or other configured channels.
从 Anaconda 存储库或其他配置的通道安装包。
Automatically manages dependencies and environments.
自动管理依赖项和环境。

1.2. Environment Management

Pip: 点:
Requires virtual environments (e.g., using venv or virtualenv) for managing project environments.
需要虚拟环境(例如,使用 venv 或 virtualenv)来管理项目环境。
Doesn’t natively support environment management.
本身不支持环境管理。
Conda:
Built-in environment management feature.
内置环境管理功能。
Allows you to create, export, and manage multiple isolated environments easily.
允许您轻松创建、导出和管理多个隔离环境。

1. 3. Dependency Resolution

  1. 依赖项解析
    Pip: 点:
    Performs dependency resolution during installation but may not handle complex dependencies well.
    在安装过程中执行依赖项解析,但可能无法很好地处理复杂的依赖项。
    Can lead to “dependency hell” if conflicts arise.
    如果出现冲突,可能会导致 “依赖地狱”。
    Conda: 康达:
    Uses a more sophisticated dependency resolver.
    使用更复杂的依赖关系解析程序。
    Ensures that all dependencies are compatible before installation, reducing conflicts.
    安装前确保所有依赖项兼容,减少冲突。

1. 4. Installation Speed

  1. 安装速度
    Pip:
    Generally installs packages from source, which can take longer.
    通常从源安装包,这可能需要更长的时间。
    May require compilation for some packages.
    可能需要对某些软件包进行编译。
    Conda:
    Often installs precompiled binaries, leading to faster installation times.
    通常会安装预编译的二进制文件,从而加快安装时间。
    Ideal for data science packages that may have complex dependencies.
    非常适合可能具有复杂依赖项的数据科学包。

1.5. Use Cases 5.

使用案例
Pip: :
Best suited for standard Python projects where you need packages from PyPI.
最适合需要 PyPI 软件包的标准 Python 项目。
Common in web development and general Python programming.
常见于 Web 开发和通用 Python 编程。

Conda:
Preferred in data science, machine learning, and scientific computing where complex dependencies are common.
在数据科学、机器学习和科学计算中,复杂依赖关系很常见,这是首选。
Useful for users working with multiple languages and environments.
对于使用多种语言和环境的用户非常有用。

Conclusion 结论
Both pip and conda have their strengths. If you’re primarily working with Python and need access to a wide range of Python packages, pip is a good choice. However, if you’re dealing with complex dependencies or require a multi-language environment, conda is often the better option.
pip 和 conda 都有其优势。如果您主要使用 Python 并且需要访问各种 Python 包,pip 是一个不错的选择。但是,如果您正在处理复杂的依赖项或需要多语言环境,conda 通常是更好的选择。

2. 具体包查看

To view an installed package using the conda command, you can follow these steps:

1. Open Your Terminal or Command Prompt

Make sure you have conda installed and accessible in your terminal or command prompt.

2. Activate the Desired Environment (if necessary)

If you have multiple environments and the package is installed in a specific one, activate that environment first:

conda activate your_environment_name

3. List Installed Packages

To view all installed packages in the current environment, use:

conda list

pip 对应的命令是 pip list;
This command will display a list of all packages along with their versions.

4. View a Specific Package

If you want to check details about a specific package, you can filter the list or use the following command:

conda list package_name

pip 对应的命令是 pip show package_name;

Replace package_name with the name of the package you want to view.

5. Get More Information About a Package

To get more detailed information about a specific package, including its dependencies, use:

conda info package_name

This will provide additional details about the package, such as its version, build, and dependencies.

Example

conda activate myenv
conda list numpy
conda info numpy

This will show you the installed version of NumPy in the myenv environment and provide detailed info about it.

3. install and 卸载

使用 conda 安装时, 先更新自己的conda;

如果您使用的是旧版本的 Conda,它可能没有最新的软件包列表。您可以通过以下方式更新 Conda:

conda update condaconda install librosa youtube-dl sox -c conda-forge
conda install -y pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

-y:此选项在安装过程中自动对所有提示回答 “yes”。如果没有 -y,conda 将在继续安装软件包之前要求确认。-y 标志确保安装继续进行,无需用户干预。

-c: This option specifies the channels from which to pull the packages. In this case, you have two channels specified:-c:此选项指定要从中提取包的通道。在本例中,您指定了两个通道:

-c pytorch: This tells conda to search and install the packages from the pytorch channel.-c pytorch:这告诉 conda 从 pytorch 通道搜索并安装软件包。

-c nvidia: This tells conda to also search the nvidia channel for packages.-c nvidia:这会告诉 conda 也搜索 nvidia 通道中的软件包。

3.1 install

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cudatoolkit=11.2 -c pytorch
# ROCM 5.2 (Linux only)
pip install torch==1.13.1+rocm5.2 torchvision==0.14.1+rocm5.2 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/rocm5.2
# CUDA 11.6
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
# CUDA 11.7
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
# CPU only
pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cpu

3.2 安装出现包不存在时

Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  • cudatoolkit=11.2

Current channels:

  • https://conda.anaconda.org/pytorch/linux-64
  • https://conda.anaconda.org/pytorch/noarch
  • https://repo.anaconda.com/pkgs/main/linux-64
  • https://repo.anaconda.com/pkgs/main/noarch
  • https://repo.anaconda.com/pkgs/r/linux-64
  • https://repo.anaconda.com/pkgs/r/noarch

It seems that cudatoolkit=11.2 might not be available in the channels you’re using. Let’s try a few steps to resolve this issue.似乎 cudatoolkit=11.2 可能在您使用的频道中不可用。让我们尝试几个步骤来解决此问题。

1. Add the nvidia Channel1. 添加 nvidia 频道

The cudatoolkit package, especially older versions, is sometimes available in the nvidia channel. Let’s add this channel explicitly to ensure compatibility:cudatoolkit 包,尤其是旧版本,有时在 nvidia 频道中可用。让我们显式添加此通道以确保兼容性:

conda config --add channels nvidia

2. **Search for Available Versions of cudatoolkit**2. 搜索 cudatoolkit 的可用版本

You can search for available versions of cudatoolkit to make sure 11.2 is available:您可以搜索 cudatoolkit 的可用版本以确保 11.2 可用:

conda search cudatoolkit

This will list all the available versions. If version 11.2 isn’t available, choose the closest supported version (e.g., 11.3 or 11.1) and adjust the installation command.这将列出所有可用版本。如果版本 11.2 不可用,请选择最接近的支持版本(例如 11.3 或 11.1)并调整安装命令。

3. Reinstall PyTorch 1.13.1 with the Correct CUDA Toolkit3. 使用正确的 CUDA 工具包重新安装 PyTorch 1.13.1

After checking the available versions, modify the install command accordingly. Here’s the original command updated with nvidia and pytorch channels for installation:检查可用版本后,相应地修改 install 命令。以下是使用 nvidiapytorch 通道更新的原始命令以进行安装:

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cudatoolkit=11.2 -c pytorch -c nvidia

If 11.2 is unavailable, adjust the cudatoolkit version:如果 11.2 版本不可用,请调整 cudatoolkit 版本:

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 cudatoolkit=11.3 -c pytorch -c nvidia

4. Update Conda4. 更新 Conda

If the package is still not found, you might want to update Conda to ensure you have the latest environment information:如果仍未找到包,您可能需要更新 Conda 以确保您拥有最新的环境信息:

conda update conda

5. Verify the Installation5. 验证安装

After installation, verify everything by running:安装后,通过运行以下命令来验证所有内容:

import torch
print(torch.__version__)           # Should return '1.13.1'
print(torch.cuda.is_available())   # Should return True
print(torch.version.cuda)          # Should return '11.x'

Let me know if this works!让我知道这是否有效!

3.2 uninstall

conda remove package name
pip uninstall package name

相关文章:

pip 和 conda 的安装区别

在决定使用 pip 和 conda 安装包时,了解这两个包管理器之间的主要区别非常重要。以下是细分: 1. 区别 1.1. Package Management System 包裹管理系统 Pip: : Primarily used for Python packages. 主要用于 Python 包。 Installs package…...

大学生就业招聘:Spring Boot系统的架构分析

大学生就业招聘系统的设计与实现 摘要 随着信息互联网信息的飞速发展,大学生就业成为一个难题,好多公司都舍不得培养人才,只想要一专多能之人才,不愿是承担社会的责任,针对这个问题开发一个专门适应大学生就业招聘的网…...

线段树模板

文章目录 线段树练习题目线段树概念区间维护辅助函数创建线段树 :build修改线段树 :modify查询线段树:query 全部代码 线段树 练习题目 洛谷题单 【模板】线段树 1 【模板】线段树 2 开关 扶苏的问题 线段树概念 线段树是一种高级数据结构&a…...

【TypeScript】知识点梳理(三)

#void前面提到了代表空,但有个特殊情况,是空不是空,细谈是取舍,但我们不深究hhh# 代码示例: type func () > voidconst f1: func function() {return true; } 定义了空,返回非空值,理论…...

题解:SP1741 TETRIS3D - Tetris 3D

这是一道二维线段树(树套树)标记永久化的模版题 前置知识点(来自董晓算法) 好,现在开始我们的分析: 题意简述: 在一个二维平面内,有给定的坐标,在这个坐标范围内加上…...

EWSTM8 IAR for STM8 软件分享

1. 软件简介 EWSTM8,即 IAR for STM8,全称为 IAR Embedded Workbench for STM8,它是 IAR ARM 嵌入式工作台之一,用于开发 STM8。IAR 有多个不同名的版本,对应不同的开发对象。 EWSTM8最新版本为V3.11(202…...

非机动车检测数据集 4类 5500张 电动三轮自行车 voc yolo

非机动车检测数据集 4类 5500张 电动三轮自行车 voc yolo 非机动车检测数据集介绍 数据集名称 非机动车检测数据集 (Non-Motorized Vehicle Detection Dataset) 数据集概述 该数据集专为训练和评估基于YOLO系列目标检测模型(包括YOLOv5、YOLOv6、YOLOv7等&#x…...

Chromium 中JavaScript FileReader API接口c++代码实现

FileReader 备注&#xff1a; 此特性在 Web Worker 中可用。 FileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件&#xff08;或原始数据缓冲区&#xff09;的内容&#xff0c;使用 File 或 Blob 对象指定要读取的文件或数据。 文件对象可以从用户使用 <…...

k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载

目录 1 MetailLB 搭建 1.1 MetalLB 的作用和原理 1.2 MetalLB功能 1.3 部署 MetalLB 1.3.1 创建deployment控制器和创建一个服务 1.3.2 下载MealLB清单文件 1.3.3 使用 docker 对镜像进行拉取 1.3.4 将镜像上传至私人仓库 1.3.5 将官方仓库地址修改为本地私人地址 1.3.6 运行清…...

南昌网站建设让你的企业网站更具竞争力

南昌网站建设让你的企业网站更具竞争力 在当今竞争激烈的市场环境中&#xff0c;一个高质量的网站不仅是企业形象的展示平台&#xff0c;更是吸引客户、提升业绩的重要工具。南昌作为江西的省会城市&#xff0c;互联网产业的蓬勃发展为企业网站建设提供了良好的机遇。 首先&am…...

【重学 MySQL】五十三、MySQL数据类型概述和字符集设置

【重学 MySQL】五十三、MySQL数据类型概述和字符集设置 MySQL数据类型概述MySQL字符集设置注意事项 MySQL数据类型概述 MySQL是一个流行的关系型数据库管理系统&#xff0c;它支持多种数据类型&#xff0c;以满足不同数据处理和存储的需求。理解并正确使用这些数据类型对于提高…...

《计算机原理与系统结构》学习系列——计算机的算数运算(上)

系列文章目录 目录 ALU行波进位加法器超前进位加法器整数运算加减法乘法无符号数相乘N位乘法数的工作流程N位乘法器改进&#xff1a;硬件资源更快速的乘法 MIPS中的乘法除法 32位除法器流程除法器改进 更快速的除法 MIPS中的除法总结 ALU ALU功能&#xff1a;对a&#xff0c;…...

如何在华为云服务器查看IP地址,及修改服务器登录密码!!!

1.在华为云服务器查看IP地址 (1).第一步&#xff1a; 先找到控制台 (2).第二步&#xff1a; 点击华为云Flexus云服务 (3)第三步&#xff1a; 找到公网IP&#xff0c;就找到华为云服务器IP地址啦。 注意&#xff1a;在操作以上步骤的前提是要已注册华为云账号及购买云服务器…...

JAVA并发编程高级——JDK 新增的原子操作类 LongAdder

LongAdder 简单介绍 前面讲过,AtomicLong通过CAS提供了非阻塞的原子性操作,相比使用阻塞算法的同步器来说它的性能已经很好了,但是JDK开发组并不满足于此。使用AtomicLong 时,在高并发下大量线程会同时去竞争更新同一个原子变量,但是由于同时只有一个线程的CAS操作会成功,…...

常见的基础系统

权限管理系统支付系统搜索系统报表系统API网关系统待定。。。 Java 优质开源系统设计项目 来源&#xff1a;Java 优质开源系统设计项目 | JavaGuide 备注&#xff1a;github和gitee上可以搜索到相关项目...

在 window 系统下安装 Ubuntu (虚拟机)

文章目录 零、Ubuntu 和 Vmware workstation 资源一、下载 Ubuntu二、下载 Vmware Workstation Pro三、安装 Vmware Workstation Pro四、创建虚拟机五、配置 Ubuntu 零、Ubuntu 和 Vmware workstation 资源 如果觉得自己下载 Ubuntu 和 Vmware workstation 麻烦&#xff0c;也…...

鸿蒙开发(NEXT/API 12)【访问控制应用权限管控概述】程序访问控制

默认情况下&#xff0c;应用只能访问有限的系统资源。但某些情况下&#xff0c;应用存在扩展功能的诉求&#xff0c;需要访问额外的系统数据&#xff08;包括用户个人数据&#xff09;和功能&#xff0c;系统也必须以明确的方式对外提供接口来共享其数据或功能。 系统通过访问…...

(10)MATLAB莱斯(Rician)衰落信道仿真1

文章目录 前言一、莱斯分布随机变量二、仿真代码与结果1.仿真代码2.仿真结果画图 后续 前言 首先给出莱斯衰落信道模型&#xff0c;引入了莱斯因子K&#xff0c;并给出莱斯分布的概率密度函数公式。然后导出莱斯分布随机变量的仿真表示式&#xff0c;建立MATLAB仿真代码&#…...

什么是重卡充电桩?

有什么广告&#xff1f;没有广告&#xff0c;纯纯的介绍。 在政策与市场双重驱动下&#xff0c;充电桩市场已经开启加速模式&#xff0c;行业的火苗越烧越旺。同时&#xff0c;随着新能源重卡的广泛普及&#xff0c;重卡充电桩也迎来了新的发展机遇。 此种背景下 &#xff0c…...

模拟实现消息队列(基于SpringBoot实现)

提要&#xff1a;此处的消息队列是仿照RabbitMQ实现&#xff08;参数之类的&#xff09;&#xff0c;实现一些基本的操作&#xff1a;创建/销毁交互机&#xff08;exchangeDeclare&#xff0c;exchangeDelete&#xff09;&#xff0c;队列&#xff08;queueDeclare&#xff0c;…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap&#xff0c;但是由于很多朋友看不了解命令行格式&#xff0c;所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习&#xff0c;链接&#xff1a;https://wwhc.lanzoue.com/ifJY32ybh6vc…...