Python虚拟环境conda的安装使用

文章目录

    • conda虚拟环境的详细步骤和注意事项:
      • **安装Conda**
      • **创建Conda虚拟环境**
      • **激活Conda虚拟环境**
      • **安装Python包**
      • **管理Conda环境**
      • **其他优势与特性**
    • 相较于`venv`,使用`conda`管理虚拟环境有以下优势:
      • **性能**
      • **资源占用**
      • **其他性能与资源相关因素**
      • **结论**

conda虚拟环境的详细步骤和注意事项:

当然,以下是使用conda而非venv管理Python虚拟环境的详细步骤和注意事项:

安装Conda

首先,你需要安装Anaconda或Miniconda,它们都包含了conda包管理器以及基础的科学计算库。选择其中一个:

  • Anaconda:包含了大量的科学计算、数据分析相关的库,适合数据科学和机器学习项目,下载大小较大。
  • Miniconda:仅包含conda及其基本依赖,初始安装较小,适用于对存储空间有要求或只需要conda环境管理功能的用户。

访问以下网址下载对应操作系统的安装包:

  • Anaconda: https://www.anaconda.com/products/distribution
  • Miniconda: https://docs.conda.io/en/latest/miniconda.html

下载后,按照安装向导进行安装,确保在安装过程中勾选将conda添加到系统PATH(默认通常会勾选)。

创建Conda虚拟环境

在命令行中,使用以下命令创建一个名为myenv的新虚拟环境,指定Python版本(例如Python 3.8):

conda create --name myenv python=3.8

激活Conda虚拟环境

激活创建好的虚拟环境:

conda activate myenv

激活后,命令行提示符会显示当前活动环境的名称(如(myenv)),表示你现在处于该虚拟环境中。

安装Python包

在激活的环境中,使用condapip安装所需的Python包。例如,安装numpypandas

conda install numpy pandas

或者使用pip(在conda环境中,pip会与conda兼容):

pip install numpy pandas

管理Conda环境

除了创建和激活环境,conda还提供了丰富的环境管理功能:

  • 列出所有环境

    conda env list
    
  • 删除环境

    conda remove --name myenv --all
    
  • 克隆环境

    conda create --name myenv_copy --clone myenv
    
  • 导出环境配置

    conda env export > environment.yml
    
  • 从配置文件创建环境

    conda env create -f environment.yml
    

其他优势与特性

相较于venv,使用conda管理虚拟环境有以下优势:

  • 跨平台兼容:conda环境可以在不同的操作系统(Windows、macOS、Linux)之间无缝迁移。
  • 更广泛的包支持:除了Python包,conda还可以管理非Python软件包(如R语言包、C/C++库等),特别适合多语言项目和涉及科学计算、数据分析的场景。
  • 环境隔离性更好:conda环境不仅隔离Python包,还隔离了二进制依赖和编译工具链,避免了不同环境间因系统库版本冲突导致的问题。
  • 包版本管理:conda允许指定包的精确版本或版本范围,更容易管理复杂的依赖关系和实现环境的复现。
  • 环境切换方便conda activateconda deactivate命令使得环境切换更为直观和快捷。

综上所述,使用conda管理Python虚拟环境提供了更全面的管理功能、更广泛的包支持以及更好的环境隔离性,尤其适合需要处理复杂依赖关系、跨平台工作或涉及多种编程语言的项目。

conda与venv在性能、资源占用等方面的对比
condavenv 在性能、资源占用等方面存在一些差异,这些差异主要源于它们的设计理念、功能集以及对软件包管理方式的不同。以下是对二者在这方面的对比:

性能

venv

  • 创建和激活虚拟环境通常非常快速,特别是在处理纯Python项目时。
  • 依赖解析和安装主要通过 pip 进行,对于大部分常见的Python包,安装速度和效率通常可以接受。

conda

  • 创建虚拟环境的速度通常与 venv 相近,但在处理包含大量依赖或复杂依赖关系的项目时,由于其依赖解析算法更为复杂,可能会比 venv 慢一些。
  • 安装包时,conda不仅处理Python包,还可能包括非Python组件(如C库、编译器等),因此安装大型科学计算或数据分析包时,可能会比仅使用 pipvenv 稍慢,尤其是当需要从源代码编译时。

资源占用

venv

  • 创建的虚拟环境相对较小,因为它只包含Python解释器、必要的标准库以及项目所需的第三方Python包。
  • 占用磁盘空间和内存较少,适合轻量级项目或资源有限的环境。

conda

  • 由于conda设计为能够管理多语言环境和复杂的软件栈,其环境通常比 venv 更大。
  • 安装Anaconda发行版时,会预装大量的科学计算和数据分析库,这会显著增加初始安装的磁盘占用。
  • 即使使用Miniconda,由于其管理的环境包含完整的依赖链(包括可能的编译工具链),总体资源占用通常仍高于 venv

其他性能与资源相关因素

  • 环境隔离性conda 提供了更强的环境隔离,包括二进制依赖和编译工具链,这有助于避免因系统库版本冲突导致的问题,但这也意味着每个环境可能需要复制更多的系统资源。
  • 包缓存:两者都支持包缓存,减少重复下载带来的网络开销。不过,conda 的包缓存可能更大,因为它不仅缓存Python包,还缓存非Python组件。
  • 依赖解析算法conda 的依赖解析算法在处理复杂依赖关系和解决版本冲突方面更为强大,虽然可能在安装时带来一些性能开销,但长期来看有助于维护稳定的项目环境。

结论

在性能和资源占用方面,venv 通常更适合轻量级项目、纯Python应用以及对资源敏感的场景,其简单快速的特点使得环境创建和管理更为高效。而 conda 虽然资源占用稍大,安装速度可能稍慢,但它提供的强大环境管理能力、广泛的包支持(包括非Python软件包)以及优秀的依赖解析机制,使其成为处理复杂项目、多语言环境以及涉及科学计算、数据分析工作的首选工具。

选择哪一种工具应根据实际项目需求、团队习惯以及对环境管理复杂度的接受程度来决定。在资源充足且需要高级环境管理功能的场景下,牺牲一定的资源和时间换取 conda 的便利性和稳定性通常是值得的。而在资源有限或项目需求简单的场合,venv 的轻量化特性可能更具吸引力。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【jvm】jinfo使用

jinfo介绍 jinfo 是一个命令行工具,用于查看和修改 Java 虚拟机(JVM)的配置参数。它通常用于调试和性能调优。 使用 jinfo 命令,你可以查看当前 JVM 的配置参数,包括堆大小、线程数、垃圾回收器类型等。此外&#xf…

立体统计图表绘制方法(分离式环图)

立体统计图表绘制方法(分离式环形图) 记得我学统计学的时候,那些统计图表大都是平面的框框图,很呆板,就只是表现出统计的意义就好了。在网络科技发展进步的当下,原来一些传统的统计图表都有了进一步的创新。…

unity 多屏幕操作

想了解基础操作请移步:(重点是大佬写的好,这里就不再赘述) Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果_unity display-CSDN博客 在panel上也可以通过获取 Canvas,来达到切换多屏幕的操作, …

数据结构基础:一篇文章教你单链表(头插,尾插,查找,头删等的解析和代码)

和我一起学编程呀,大家一起努力! 这篇文章耗时比较久,所以大家多多支持啦 链表的结构及结构 概念:链表是⼀种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。 理解&a…

在MongoDB建模1对N关系的基本方法

“我在 SQL 和规范化数据库方面拥有丰富的经验,但我只是 MongoDB 的初学者。如何建立一对 N 关系模型?” 这是我从参加 MongoDB 分享日活动的用户那里得到的最常见问题之一。 我对这个问题没有简短的答案,因为方法不只有一种,还有…

LangChain核心模块 Retrieval——文档加载器

Retrieval ​ 许多LLM申请需要用户的特定数据,这些数据不属于模型训练集的一部分,实现这一目标的主要方法是RAG(检索增强生成),在这个过程中,将检索外部数据,然后在执行生成步骤时将其传递给LLM。 ​ LangChain 提供…

探索设计模式的魅力:精准、快速、便捷:游标尺模式在软件设计中的三大优势

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,并且坚持默默的做事。 精准、快速、便捷:游标尺模式在软件设计中的三大优势 文章目录 一、案例场景&…

黑马程序员:C++核心编程——3.函数提高

目录 1.函数默认参数 2.函数占位数 3.函数重载* 1.函数默认参数 形参列表中可以有默认值。 注意:如果某个位置有默认值,那么这个位置之后的都要有。如果函数声明有默认值了,函数实现的时候就不能有默认值(防止默认值不同而导…

蓝桥杯第十五届抱佛脚(二)竞赛中的数据结构

蓝桥杯第十五届抱佛脚(二)内置数据结构 文章目录 蓝桥杯第十五届抱佛脚(二)内置数据结构在竞赛中常见的数据结构数组(Array)链表(Linked List)栈(Stack)队列(Queue)树(Tree)映射(Map) 内置数据结构的快速使用迭代器(It…

综合知识篇20-基于中间件的开发新技术考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…

强化学习之父Richard Sutton:通往AGI的另一种可能

2019年,强化学习之父、阿尔伯塔大学教授Richard Sutton发表了后来被AI领域奉为经典的The Bitter lesson,这也是OpenAI研究员的必读文章。 在这篇文章中,Richard指出,过去 70 年来,AI 研究的一大教训是过于重视人类既有…

Python学习从0到1 day18 Python可视化基础综合案例 1.折线图

我默记这段路的酸楚,等来年春暖花开之时再赏心阅读 —— 24.3.24 python基础综合案例 数据可视化 — 折线图可视化 一、折线图案例 1.json数据格式 2.pyecharts模块介绍 3.pyecharts快速入门 4.数据处理 5.创建折线图 1.json数据格式 1.什么是json 2.掌握如何使用js…

用kimichat炒股:查找比亚迪、特斯拉等电动车产业链相关股票

kimichat可以联网检索,搜索结果更加准确、智能。 在kimichat中输入提示词:找出同时在比亚迪产业链和特斯拉产业链的企业 根据您提供的搜索结果中的信息,我们可以找出同时在比亚迪产业链和特斯拉产业链中的企业。以下是从搜索结果中提取的相关…

【动态规划】Leetcode 70. 爬楼梯

【动态规划】Leetcode 70. 爬楼梯 解法1 ---------------🎈🎈题目链接🎈🎈------------------- 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 输入…

先进电机技术 —— 长线缆驱动电机面临哪些问题?

一、长线驱动问题简述 电机变频驱动器(VFD)输出侧采用长线缆驱动电机运行时,将会面对多种问题,主要包括但不限于: 此图片来源于网络 1. **电压降**: - 长线缆的电阻会导致电压降增大,当电…

智能优化算法 | Matlab实现牛顿-拉夫逊优化算法Newton-Raphson-based optimize(内含完整源码)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 智能优化算法 | Matlab实现牛顿-拉夫逊优化算法Newton-Raphson-based optimize(内含完整源码) 源码设计 % ------------------------------------------------------------------------------------------------…

UNI-APP读取本地JSON数据

首先要把json文件放在static文件夹下 然后在要读取数据的页面导入 import data from ../../static/data.json读取数据: onLoad() {console.log(data, data)}, 打印出来的就是JSON文件里的数据了

【SQL】1527. 患某种疾病的患者(like;通配符)

前述 知识点回顾: MySQL 使用OR在LIKE查询中比较多个字段 %:表示任意字符(包括0个或多个)_:表示任意单个字符匹配空格:直接用空格就行,例如,% DIAB1%可以匹配字符串ACNE DIAB100 …

利用免费 GPU 部署体验大型语言模型推理框架 vLLM

vLLM简介 vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。 vLLM 之所以快速,是因为: 最先进的服务吞吐量 通过 PagedAttention 高效管理注意力键和值内存 连续批处理传入请求 使用 CUDA/HIP 图快速模型执行 量…

瑞芯微RK3576|触觉智能:开启科技新篇章

更多产品详情可关注深圳触觉智能官网! “瑞芯微,创新不止步!”——全新芯片RK3576即将震撼登场。指引科技风潮,创造未来无限可能!这款芯片在瑞芯微不断创新和突破的道路上,不仅是对过往成就的完美延续&…