【Python-Conda】Conda操作解读 pip 和 conda 的区别

news2024/10/1 15:31:38

【Python-Conda】Conda操作解读 & conda与pip的区别

文章目录

  • 【Python-Conda】Conda操作解读 & conda与pip的区别
    • 1. 介绍
    • 2. conda 操作
      • 2.1 创建环境
      • 2.2 查看conda已创建的环境
      • 2.3 删除环境
        • 2.3.1 删除虚拟环境中的包
      • 2.4 激活(失活)环境
        • 2.4.1 激活
        • 2.4.2 失活
        • 2.4.3 在激活的环境中安装包
      • 2.5 换源(加快下载速度)
        • 2.5.1 Windows换源
        • 2.5.2 Linux换源
      • 2.6 克隆环境
      • 2.7 重命名环境
      • 2.8 复制环境列表到文本文档
      • 2.9 anaconda prompt光标消失
    • 3. pip 和 conda 的区别
      • 3.1 区别
      • 3.2 总结
    • 4. 参考

1. 介绍

  • 什么是 conda?
    Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。

举个例子,当多个用户共享一个服务器时,会有两种情况:

  1. 用户没有自己的默认用户路径,此时如果安装conda之后,那么我们可以使用conda为每个用户创建特定的 python运行环境(包)。
  2. 每个用户都有自己的用户路径,这时候,
    • 每个用户既可以在自己的默认路径下,安装自己的conda(python),拥有自己默认的python路径
      • 在这个基础上,用户又可以为自己每个不同的项目建立不同的python 运行环境(conda create) 。(同1)
    • 也可以,都使用全局的python(conda),为自己建立不同的运行环境。(同1)。

2. conda 操作

2.1 创建环境

conda create -n [环境名称] python=[python版本]

举例:
conda create -n test python=3.7

2.2 查看conda已创建的环境

conda info -e
或
conda env list

在这里插入图片描述

  • 当前使用的环境会在前方标注一个星号

2.3 删除环境

conda remove -n [环境名称] --all

举例:
conda remove -n test --all

2.3.1 删除虚拟环境中的包

conda remove --name $your_env_name  $package_name(包名)

2.4 激活(失活)环境

2.4.1 激活

conda activate [环境名称]
举例:
conda activate test

2.4.2 失活

conda deactivate

2.4.3 在激活的环境中安装包

conda install package_name(包名)

2.5 换源(加快下载速度)

2.5.1 Windows换源

  • 在C盘你的用户路径下先创建一个文件夹,命名为pip
  • 在pip文件夹中再创建一个文本文档,先使用默认名称就行最后修改名称,在文档中输入下列内容
[global]

timeout = 6000

index-url = Simple Index

trusted-host = pypi.douban.com
  • 现在使用的是豆瓣源,也可以换成清华源,阿里源等
  • 最后,再将文本文档重命名为pip.ini

2.5.2 Linux换源

也是在你的用户路径下创建文件夹 .pip,在其中新建文本文件,命名为pip.conf。在其中输入如下内容。
在这里插入图片描述

2.6 克隆环境

有时候我们要创建一个新的环境时没有网络,这个时候我们可以使用克隆环境

conda create -n test1 --clone test
  • 这样就可以在无网络的状态下创建一个新的环境。

2.7 重命名环境

conda中没有直接重命名环境的命令,但是我们可以通过一下两步模拟重命名的操作

  • 1)克隆当前环境,同时给新环境一个想要的名字
  • 2)删除旧环境

2.8 复制环境列表到文本文档

当我们需要给客户交付代码时,通常要同时交付环境,此时我们需要冻结pip list 。如何做呢?

  • 先激活该环境,然后输入:pip freeze > requirements.txt
  • 运行之后,它会在我们运行的目录下生成requirements.txt
  • 交给对方后,对方创建一个新的环境后,输入:pip install -r requirement.txt,即可得到交付环境。

2.9 anaconda prompt光标消失

在anaconda prompt中有时会出现光标消失的情况。

  • 这个我们如果编辑很多的内容的时候,我们找不到光标就很麻烦,这个时候重新开启anaconda窗口可以解决问题,但是大多数情况我们是不想重新开启窗口的

如何使光标恢复正常?

  • 这个时候你切到中文的输入法,然后输入几个拼音。
  • 然后不要按1,直接按shift
  • 然后消失的光标重新出现了

3. pip 和 conda 的区别

3.1 区别

  • pip是Python包的通用管理器; conda是一个与语言无关的跨平台环境管理器。pip在任何环境中安装python包;conda需要在conda环境中装任何包。
  • Pip代表Pip Installs Packages,是Python的官方认可的包管理器,最常用于安装在Python包索引(PyPI)上发布的包。

在这里插入图片描述

  • conda是用来安装conda package,虽然大部分conda包是python的,但它支持了不少非python语言写的依赖项,比如mkl cuda这种c c++写的包。
  • conda安装的都是编译好的二进制包,不需要你自己编译。所以,pip有时候系统环境没有某个编译器可能会失败,conda不会。这导致了conda装东西的体积一般比较大,尤其是mkl这种,动不动几百兆甚至一G多。
  • conda功能其实比pip更多:
    • pip几乎就是个安装包的软件,conda是个环境管理的工具。
    • conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
    • 意味着你能用conda安装python解释器,pip不行。这一点我觉得是conda很有优势的地方,用conda env可以很轻松地管理很多个版本的python,pip不行。即,conda,可以为不同的任务创建不同的环境,即conda具有环境隔离功能。

conda和pip对于环境依赖的处理不同,总体来讲,conda比pip更加严格,conda会检查当前环境下所有包之间的依赖关系,pip可能对之前安装的包就不管了。这样做的话,conda基本上安上了就能保证工作,pip有时候可能装上了也不work。

3.2 总结

conda

  • 优势:包之间严格的依赖检查;是一个超越Python的环境管理器,可以创建多个环境,环境之间互相隔离;支持Python、R、C/C++;NumPy、SciPy直接使用Intel MKL,对Intel的CPU支持更好。
  • 缺点:没做好环境隔离的话,一些包可能安装不上。

pip

  • 优势:绝大多数包优先发布到pip上,安装方便,群众基础好。
  • 缺点:不进行严格的依赖检查。对于绝大多数朋友,只是在自己的个人电脑上,用NumPy,做图,其实用pip和conda区别真的不大。

如果是搞研究或者开发,在一台服务器上多人共享使用,我建议最好是conda。用版本迭代很快的库,我建议使用conda。

4. 参考

【1】https://blog.csdn.net/potato123232/article/details/118419642
【2】https://blog.csdn.net/qq_29258377/article/details/124698501

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

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

相关文章

OpenAI Embedding:快速实现聊天机器人(三)

theme: orange 本文正在参加「金石计划」 接上文OpenAI Embedding:快速实现聊天机器人(二)有讲到聊天机器人的架构和流程,这篇开始通过代码讲讲具体实现。 前言 这篇文章为了降低实现的难度,下图中提供存储和向量相似度搜索的Redis(Redis Sea…

智媒ai在线伪原创-python文本自动伪原创

文章伪原创工具的优势 文章伪原创工具是一类自然语言处理工具,通过对原始文本进行语言转换、替换、重组等方式,生成与原始文本相似但不完全相同的新文本。这种工具的优势主要包括以下几点: 提高工作效率:使用文章伪原创工具可以快…

第三章 传输层

传输层基本服务 传输层核心任务是为应用进程之间提供端到端的逻辑通信服务传输层主要实现功能:传输层寻址、对应用层报文进行分段和重组、对报文进行差错检测、实现进程间的端到端的可靠数据传输控制、面向应用层实现复用与分解、实现端到端的流量控制、拥塞控制 …

C++中的引用

上一次,我们只是浅浅的提了一下引用‘&’,那么今天,我们就正式减少一下引用,以及引用是什么,还有就是引用和指针的区别,引用的特点 首先,我们回顾一下什么是引用,引用就是取别名…

MapReduce原理

MapReduce 编程规范 MapReduce 的开发一共有八个步骤, 其中 Map 阶段分为 2 个步骤,Shuffle 阶段 4 个步骤,Reduce 阶段分为 2 个步骤Map 阶段 2 个步骤 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步自定义 Map 逻辑, 将第一…

十五周算法训练营——链表专题

今天是十五周算法训练营的第三周,主要讲链表专题,包含:反转链表、移除链表、交换链表、链表相交、删除链表中的倒数第N个节点、环形链表II。(欢迎加入十五周算法训练营,与小伙伴一起卷算法——文章末尾进群&#xff09…

【我的创作纪念日】恒川的创作一周年

机缘 大家好,我是热爱跑步的恒川,今天是个特殊的日子(我的创作纪念日),在去年的今天,我发了第一篇博文。去年的时候,刚接触到CSDN,只想把他当作一个学习的工具,后来&…

Node.js -- Express路由

1.路由的概念 在Express中,路由指的是客户端的请求与服务器处理函数之间的关系。 Express中的路由分为三部分,分别是请求的类型,请求的URL地址和处理函数。格式如下: app.METHOD(PATH,HANDLER)例子如下: // 匹配 GE…

【计算几何3】博物馆问题和相关证明

( gallery problem or museum problem ) Art gallery problem - Wikipedia 一、说明 画廊问题是一个基本的计算几何问题,最现实的反映是,到底对一个场景监视会用到几个摄像头。更深刻的层次是,如何对场景生成地图&am…

C生万物 | 十分钟带你学会位段相关知识

结构体相关知识可以先看看这篇文章 —— 链接 一、什么是位段 位段的声明和结构是类似的,有两个不同: 位段的成员必须是 int、unsigned int 或signed int位段的成员名后边有一个冒号和一个数字 在下面,我分别写了一个结构体和一个位段&…

嵌入式51单片机01-开发版介绍与LED流水灯系列

文章目录1. STC89C52单片机介绍2. 单片机预备知识3. LED灯操作系列1. 点亮LED(1)LED原理图连接方式(2) proteus接线图(3)keil代码2. LED灯闪烁(1)实验电路图(2&#xff0…

每日一题104——转置矩阵

给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示…

大佬们隔空互怼

阅读本文大概需要 1.14 分钟。1、最近国内各大互联网公司都在掀起一股大模型热潮,要想让这股热潮变得更持久更精彩,离不开互联网大佬们的添砖加瓦。比如上周搜狗的王小川跟百度的肖阳,两位互联网大佬隔空互怼的场景,一度让大家觉得…

时序分析 49 -- 贝叶斯时序预测(一)

贝叶斯时序预测(一) 时序预测在统计分析和机器学习领域一直都是一个比较重要的话题。在本系列前面的文章中我们介绍了诸如ARIMA系列方法,Holt-Winter指数平滑模型等多种常用方法,实际上这些看似不同的模型和方法之间都具有千丝万缕…

SpringBoot中处理日期的两种方式(消息转换器)

在Spring Boot中,我们通常会使用Jackson来序列化和反序列化Java对象到JSON。在进行日期序列化时,我们需要指定日期格式,否则Jackson会使用默认格式,这可能不是我们想要的。要指定日期格式,有两种方式: 如果没有处理按照默认的结果如下图: 所以我们需要通过一些手段来对日期进行…

总结一下Redis的缓存雪崩、缓存击穿、缓存穿透

缓存是提高系统性能的一种常见手段,其中Redis是一种常用的高性能缓存数据库。但是在使用缓存时,可能会遇到一些问题,比如缓存击穿、缓存穿透、缓存雪崩等问题,本文将介绍这些问题的概念、原因以及解决方案。 缓存击穿 缓存击穿指…

Jenkins——用户管理、授权策略配置以及Jenkins安全配置管理

这里写目录标题一、Jenkins用户管理1、进入系统管理界面2、创建用户3、编辑用户信息4、编辑用户信息5、删除用户信息二、Jenkins授权策略配置1、授权策略插件2、安装插件:Role-based Authorization Strategy3、管理角色a、全局角色 Global rolesb、项目角色 Item rolesc、节点角…

CVPR | 达摩院开源自监督学习框架CoKe, 单机8卡可训练

团队模型、论文、博文、直播合集,点击此处浏览 一、论文 论文链接: Unsupervised Visual Representation Learning by Online Constrained K-Means 代码链接:https://github.com/idstcv/CoKe 二、背景 虽然基于instance的自监督学习方法在ImageNet上…

注册claude AI账号 slack工作区账号

Claude 是建立在 slack工作区的一个AI人工助手,更像是将chatgpt集成到了会议模式,一个账号实际上拥有了你的会议室和你的AI助手,你可以让你的朋友和同事进入你的房间体验。 Claude是不是openai的产物?目前还不知道,不…

RS232/RS485/RS422 接线说明

RS232/RS485/RS422 接线 文章目录RS232/RS485/RS422 接线RS232RS485422RS232 设备A 和 设备B 没有硬件流控 设备A设备BTXDRXDRXDTXDGNDGND 设备A 和 设备B 使用RTS/CTS 做硬件流控 一般使用RTS/CTS都会由232芯片自动控制, 比如XR21V1414, 需要设备gpio mode 为00…