pip 和 conda 的安装区别
在决定使用 pip 和 conda 安装包时,了解这两个包管理器之间的主要区别非常重要。以下是细分:
1. 区别
1.1. Package Management System
- 包裹管理系统
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
- 依赖项解析
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
- 安装速度
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 命令。以下是使用 nvidia
和 pytorch
通道更新的原始命令以进行安装:
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 备注: 此特性在 Web Worker 中可用。 FileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 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 运行清…...

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

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

《计算机原理与系统结构》学习系列——计算机的算数运算(上)
系列文章目录 目录 ALU行波进位加法器超前进位加法器整数运算加减法乘法无符号数相乘N位乘法数的工作流程N位乘法器改进:硬件资源更快速的乘法 MIPS中的乘法除法 32位除法器流程除法器改进 更快速的除法 MIPS中的除法总结 ALU ALU功能:对a,…...

如何在华为云服务器查看IP地址,及修改服务器登录密码!!!
1.在华为云服务器查看IP地址 (1).第一步: 先找到控制台 (2).第二步: 点击华为云Flexus云服务 (3)第三步: 找到公网IP,就找到华为云服务器IP地址啦。 注意:在操作以上步骤的前提是要已注册华为云账号及购买云服务器…...

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

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

在 window 系统下安装 Ubuntu (虚拟机)
文章目录 零、Ubuntu 和 Vmware workstation 资源一、下载 Ubuntu二、下载 Vmware Workstation Pro三、安装 Vmware Workstation Pro四、创建虚拟机五、配置 Ubuntu 零、Ubuntu 和 Vmware workstation 资源 如果觉得自己下载 Ubuntu 和 Vmware workstation 麻烦,也…...

鸿蒙开发(NEXT/API 12)【访问控制应用权限管控概述】程序访问控制
默认情况下,应用只能访问有限的系统资源。但某些情况下,应用存在扩展功能的诉求,需要访问额外的系统数据(包括用户个人数据)和功能,系统也必须以明确的方式对外提供接口来共享其数据或功能。 系统通过访问…...

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

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

模拟实现消息队列(基于SpringBoot实现)
提要:此处的消息队列是仿照RabbitMQ实现(参数之类的),实现一些基本的操作:创建/销毁交互机(exchangeDeclare,exchangeDelete),队列(queueDeclare,…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...