Anaconda常用命令

Anaconda常用命令

文章目录

  • Anaconda常用命令
  • 1. 前言
  • 2. 管理conda自身
    • 2.1 查看conda版本
    • 2.2 查看conda的环境配置
    • 2.3 设置镜像
    • 2.4 更新conda
    • 2.6 更新Anaconda整体
    • 2.7 查询某个命令的帮助
  • 3. 管理环境
    • 3.1 创建虚拟环境
    • 3.2 创建虚拟环境的同时安装必要的包
    • 3.3 查看有哪些虚拟环境
    • 3.4 激活虚拟环境
    • 3.5 退出虚拟环境
    • 3.5 删除虚拟环境
    • 3.6 导出环境
  • 4. 包(Package)的管理
    • 4.1 查询包的安装情况
    • 4.2 包的安装和更新
    • 4.3 conda卸载包
    • 4.4 清理anaconda缓存
  • 5. Python版本的管理
    • 5.1 将版本变更到指定版本
    • 5.2 将python版本更新到最新版本
  • 6. conda install vs pip install
    • 6.1 有什么区别?
    • 6.2 能否混用?
  • 7. conda configuration
    • 7.1 .condarc文件在哪儿?
    • 7.2 Channel管理
    • 7.1 .condarc文件在哪儿?
    • 7.2 Channel管理

1. 前言

Conda是Anaconda中一个强大的包和环境管理工具,可以在Windows的Anaconda Prompt命令行使用,也可以在macOS或者Linux系统的终端窗口(terminal window)的命令行使用。
本文简单介绍conda的一些常用命令(对于大多数人来说掌握了这些就基本上能够’生活自理’了吧)命令。当然,本文假定你已经安装了Anaconda,并且在Windows条件下使用Anaconda Prompt或者在Linux下使用terminal window。
本文根据conda-getting-started编译而成,喜欢阅读英文的伙伴们可以直接去读英文说明。
conda命令的一些选项开关有两种指定方式,一种两个连接号“--”后跟选项名全程,一种是一个连接号“-”后跟简称。比如说"-n""--name"是等价的。但是要注意有些例外,比如说,“--version”对应的是“-V”(大写的V而不是小写的v)。

2. 管理conda自身

2.1 查看conda版本

  conda --version

2.2 查看conda的环境配置

  conda config --show运行结果示例(只是截取了最前面一小段) 

2.3 设置镜像

conda有时候安装软件会非常慢。设置国内镜像的话可以使安装更快捷一些。设置方法如下所示:

设置清华镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

设置bioconda

conda config --add channels bioconda
conda config --add channels conda-forge

设置搜索时显示通道地址

conda config --set show_channel_urls yes

2.4 更新conda

将conda自身更新到最新版本,it is recommended to always keep conda updated to the latest version.

conda update conda

2.6 更新Anaconda整体

将整个Anaconda都更新到确保稳定性和兼容性的最新版本

conda update Anaconda

2.7 查询某个命令的帮助

conda create --help

3. 管理环境

Conda允许你创建相互隔离的独立环境,这些环境被称之为虚拟环境

(Virtual Environment),这些环境各自包含属于自己的文件、包以及他们的依存关系,并且不会相互干扰。

Anaconda有一个缺省的名为base的环境。但是不建议把程序放在base环境中,应该创建不同的虚拟环境分别管理不同的开发项目。这个涉及到一个根本的问题:为什么我们需要虚拟环境呢?举一个简单的例子,想象一下你有多个项目要开发,每个项目中都有一些包要依赖于某个共同的包,但是各自的所需要的版本不一致,有一些需要低版本的,有些需要高版本的。然后你就陷入了众口难调的困境。为不同的项目创建虚拟环境就可以把不同项目隔离开来,各自使用自己所需要的软件环境。

3.1 创建虚拟环境

使用conda创建虚拟环境的命令格式为:

conda create -n env_name python=3.8

这表示创建python版本为3.8、名字为env_name的虚拟环境。

创建后,env_name文件可以在Anaconda安装目录envs文件下找到。在不指定python版本时,自动创建基于最新python版本的虚拟环境.

补充:

conda create -n env_name python=3.8 -y			 	# -y表示直接安装
conda create -n env_name python=3.8 -c 镜像	 	   # -c表示安装途径(镜像)

3.2 创建虚拟环境的同时安装必要的包

但是并不建议这样做,简化每一条命令的任务在绝大多数时候都是明智的(一个例外是需要反复执行的脚本)

conda create -n env_name numpy matplotlib python=3.8

3.3 查看有哪些虚拟环境

以下三条命令都可以。

conda env list
conda info -e
conda info --envs

所显示的列表中,前面带星号“*“的表示当前活动环境。比如说当前我的环境列表:

星号的位置表示我现在在base环境下工作。注意,也有不是显示base而显示root的,root是因为是以系统管理身份作业(?待确认)

3.4 激活虚拟环境

使用如下命令即可激活创建的虚拟环境。

conda activate env_name

此时使用python --version可以检查当前python版本是否为所想要的(即虚拟环境的python版本)。

在4.6版本以前需要使用如下命令:
Linux:  source activate your_env_name
Windows: activate your_env_name
但是为什么要停留在过去(4.6以前的版本)呢?毕竟现在至少已经有4.10版本了,所以如果你不是最新版本,运行一下"conda update conda"吧

3.5 退出虚拟环境

使用如下命令即可退出当前工作的虚拟环境。

conda activate
conda deactivate

有意思的是,以上两条命令只中任一条都会让你回到base environment,它们从不同的角度出发到达了同一个目的地。可以这样理解,activate的缺省值是base,deactivate的缺省值是当前环境,因此它们最终的结果都是回到base

这个只适用于4.6及以后版本。如果你还在4.6以前的话,参见上一条说明。

3.5 删除虚拟环境

执行以下命令可以将该指定虚拟环境及其中所安装的包都删除。

conda remove --name env_name --all

如果只删除虚拟环境中的某个或者某些包则是:

conda remove --name env_name package_name

3.6 导出环境

很多的软件依赖特定的环境,我们可以导出环境,这样方便自己在需要时恢复环境,也可以提供给别人用于创建完全相同的环境。

获得环境中的所有配置

conda env export --name myenv > myenv.yml

重新还原环境

conda env create -f  myenv.yml

4. 包(Package)的管理

4.1 查询包的安装情况

查询看当前环境中安装了哪些包

conda list

查询当前Anaconda repository中是否有你想要安装的包

conda search package_name

​ 当然与互联网的连接是执行这个查询操作乃至后续安装的前提条件.

4.2 包的安装和更新

在当前(虚拟)环境中安装一个包:

conda install package_name

当然也可以如上所述在创建虚拟环境的同时安装包,但是并不建议。安装完一个包后可以执行conda list确认现在列表中是否已经包含了新安装的包。

也可以以以下命令安装某个特定版本的包(以下例为安装0.20.3版本的numpy):

conda install numpy=0.20.3

可以用以下命令将某个包更新到它的最新版本 :

conda update numpy

安装包的时候可以指定从哪个channel进行安装,比如说,以下命令表示不是从缺省通道,而是从conda_forge安装某个包。

conda install pkg_name -c conda_forge	# conda_forge表示安装渠道

4.3 conda卸载包

conda uninstall package_name

这样会将依赖于这个包的所有其它包也同时卸载。

如果不想删除依赖其当前要删除的包的其他包:

conda uninstall package_name --force

但是并不建议用这种方式卸载,因为这样会使得你的环境支离破碎,如以下(conda manual description原文)所述:

一个直观的理解就是,如果一个包A被删除了,而依赖于它的包B、C等却没有删除,但是那些包其实也已经不可用了。另一方面,之后你又安装了A的新版本,而不幸的是,B、C却与新版本的A不兼容因此依然是不可用的。

4.4 清理anaconda缓存

conda clean -p      # 删除没有用的包 --packages
conda clean -t      # 删除tar打包 --tarballs
conda clean -y -all # 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)

关于清除命令的更详细的说明,可以执行以下命令进行查询:

conda clean -h

5. Python版本的管理

除了上面在创建虚环境时可以指定python版本外,Anaconda基环境的python版本也可以根据需要进行更改。

5.1 将版本变更到指定版本

conda install python=3.5

更新完后可以用以下命令查看变更是否符合预期。

python --version

5.2 将python版本更新到最新版本

如果你想将python版本更新到最新版本,可以使用以下命令:

conda update python

6. conda install vs pip install

6.1 有什么区别?

conda可以管理非python包,pip只能管理python包。
conda自己可以用来创建环境,pip不能,需要依赖virtualenv之类的。
conda安装的包是编译好的二进制文件,安装包文件过程中会自动安装依赖包;pip安装的包是wheel或源码,装过程中不会去支持python语言之外的依赖项。
conda安装的包会统一下载到一个目录文件中,当环境B需要下载的包,之前其他环境安装过,就只需要把之间下载的文件复制到环境B中,下载一次多次安装。pip是直接下载到对应环境中。
conda只能在conda管理的环境中使用,例如比如conda所创建的虚环境中使用。pip可以在任何环境中使用,在conda创建的环境 中使用pip命令,需要先安装pip(conda install pip ),然后可以 环境A 中使用pip 。conda 安装的包,pip可以卸载,但不能卸载依赖包,pip安装的包,只能用pip卸载。
比如说,在某个环境中安装一个包,会出现以下打印信息:

这里“Using cached jupyter ...” 的意思就是jupyter安装包已经(在base环境或者别的环境中)之前安装过了,在缓存中有安装包,所以就不会重新下载,而是直接利用了。
pip和conda在安装软件包时,在依赖关系方面的处理机制不同。pip在递归的串行循环中安装依赖项,不会确保同时满足所有软件包的依赖关系,如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式被破坏掉;conda使用SAT(satisfiability)solver来验证是否满足环境中安装的所有软件包的所有要求,只要有关依赖项的软件包元数据正确,conda就会按预期产生可用的环境。

6.2 能否混用?

​ 首先,不建议混用。混用容易导致库的依赖关系出现混乱,然后突然哪天环境可能就崩了,安装不了新的包,无法进行conda update之类的。[2023-05-07]刚刚这两天遭遇了一次这样的事件,由于要安装一个新的包,各种各样的稀奇古怪的事情层出不穷,比如说:

conda install packagename

CondaMemoryError: The conda process ran out of memory. Increase system memory and/or try again.

conda update conda

  • defaults/win-64::_anaconda_depends==2020.07=py38_0
  • defaults/win-64::_ipyw_jlab_nb_ext_conf==0.1.0=py38_0
    failed with repodata from current_repodata.json, will retry with next repodata source.
    Solving environment: failed with repodata from current_repodata.json, will retry with next repodata
    source.
    Collecting package metadata (repodata.json): failed

RemoveError: ‘requests’ is a dependency of conda and cannot be removed from
conda’s operating environment.

       上天入地各种官方民间偏方的试,搞不定,最后只好卸载重新安装Anaconda完事。。。其次,由于conda的库确实不如pip的库丰富{很多包只在 pip 有:PYPI有15万可用包,而Anaconda repository中(使用conda命令安装)提供了1,500多个软件包,Anaconda cloud上(使用conda-forge或bioconda命令安装)的几千种其他软件包。},所以有时候可能迫不得已要使用pip安装。切记,只有在conda install搞不定时才使用pip intall。 而且,最后使用虚拟环境进行环境隔离。

6.3 安装在哪里?
conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中
6.4 如何判断conda中某个包是通过conda还是pip安装的?
执行 conda list ,用pip安装的包显示的build项目为pypi。如下图所示:

7. conda configuration

conda的配置文件为".condarc",该文件在安装时不是缺省存在的。但是当你第一次运行conda config命令时它就被自动创建了。".condarc"配置文件遵循简单的YAML语法。

7.1 .condarc文件在哪儿?

执行conda info,会有信息显示如下所示:

7.2 Channel管理

追加conda-forge channel:

conda config --add channels conda-forge

移除conda-forge channel:

conda config --remove channels conda-forge

查询当前配置中包含哪些channels

conda config --show

配置文件遵循简单的YAML语法。

7.1 .condarc文件在哪儿?

执行conda info,会有信息显示如下所示:

7.2 Channel管理

追加conda-forge channel:

conda config --add channels conda-forge

移除conda-forge channel:

conda config --remove channels conda-forge

查询当前配置中包含哪些channels

conda config --show

原文链接:https://blog.csdn.net/chenxy_bwave/article/details/119996001

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

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

相关文章

redis缓存穿透

缓存穿透是指在缓存中查询大量不存在的数据,导致无效请求直接落到后端数据库,从而造成数据库负载过高,甚至引起数据库超负荷的情况。缓存穿透通常发生在恶意攻击或非法请求的情况下,攻击者故意查询不存在的数据,导致大…

mac系统占用100多G怎么清除 mac内存系统占用了好多怎么清理

mac电脑运行速度足以傲视其他电脑系统,不易卡顿死机是苹果电脑的优势,但是其偏小的存储空间令人十分头痛。如果你的mac磁盘容量是仅有12GB,在使用一段时间之后,系统内存很有可能就要占用100多G,很快电脑会出现空间不够…

【Odoo16前端源码分析】接口web_search_read

接口名称: web_search_read 请求路径: /web/dataset/call_kw/project.project/web_search_read 内容主题: 请求参数kwargs中fields的来源分析 以list类型为例 1 先转成archInfo对象,其中有activeFileds属性 /* web/static/src/views/list/list_view.js */expor…

Android12之快速查找静态注册jni函数方法(一百六十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

【C语言15】单链表,(对于二级指针与一级指针应用的详细讲述)

文章目录 单链表1.单链表的介绍2.单链表的实现2.1.1单链表结点的创建与销毁2.1.2单链表尾插2.1.3单链表打印2.1.4尾删2.1.5头插2.1.6头删2.1.7查找2.1.8在pos位置之后插入数据2.1.9删除pos位置 单链表 1.单链表的介绍 链表是一种物理存储结构上非连续、非顺序的存储结构&#…

通达OA-V12版本二次开发-2023年7月25日

通达OA-V12版本二次开发-2023年7月25日 1、解密V11版本的文件2、修改V11的文件3、修改mysql_为mysqli_。4、关闭文件,windows下的记事本方式打开,然后另存为utf-8文件。5、V12版本相对于V11版本,改动内容 1、解密V11版本的文件 免费解密工具…

Vue 本地应用 图片切换 v-show v-bind实践

点击切换图片的本质,其实修改的是img标签的src属性。 图片的地址有很多个,在js当中通过数组来保存多个数据,数组的取值结合索引,根据索引可以来判断是否是第一张还是最后一张。 图片的变化本质是src属性被修改了,属性…

国标GB28181视频监控平台EasyGBS视频无法播放,抓包返回ICMP是什么原因?

国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强,支持将…

Python原型模式介绍、使用;浅拷贝/深拷贝原理

一、Python原型模式(Prototype Pattern)简介 1. 概念 原型模式是一种创建型设计模式,它通过复制(克隆)现有对象来创建新对象。这样可以避免使用复杂的构造函数来创建对象,提高程序的性能和可维护性。 2. 功…

腾讯云tke-ingress开启ingress域名访问日志

容器类型为containers的tke集群控制台创建完ingress-controller之后,由于默认日志是打印在pod内的文件,现在需要自行收集访问日志,需要把日志打印在正常的pod输出上在收集 在ingress-controller中默认nginx配置为 access-log-path: /var/log…

redis 缓存穿透 缓存击穿 缓存雪崩

redis 缓存穿透 缓存击穿 缓存雪崩 1.缓存穿透 前提:应用服务器压力过大 > 导致redis命中率过低(查询不到缓存)> 一直查询数据库 描述:1.redis查询不到数据 2.出现很多非正常url访问(一般出现这些问题都是恶意…

独立站运营简历怎么写?如何做自建站履历?编写独立站经营履历的要点是什么?如何在简历中呈现个人自建站运营经验?

作为一名独立站运营者,一份出色的简历是展示自己能力的重要途径。一个精心制作的独立站运营简历可以为宝子们赢得心仪职位的机会。接下来,我们将介绍如何写一份引人注目的独立站运营简历,从而吸引雇主的目光。 独立站运营简历:个…

微服务——统一网关Getway

为什么需要网关? 网关的两种实现: 网关Getway——快速入门 步骤一 网关背身也是一个微服务,需要注册到nacos中去 步骤二 成功运行后 可以通过网关进行请求转发到对应服务。 流程如下: 路由断言工厂 网关路由可以配置的东西有如下。 spri…

【深度学习】yolov 图片训练的时候的遇到的warning: corrupt JPEG restored and saved

报错原因 是图片在dataset.py 走验证时报的错误。 if im.format.lower() in (jpg, jpeg):with open(im_file, rb) as f:f.seek(-2, 2)if f.read() ! b\xff\xd9: # corrupt JPEGImageOps.exif_transpose(Image.open(im_file)).save(im_file, JPEG, subsampling0, quality100)m…

Redis 九种数据类型的基本操作

一、redis9种数据类型的基本操作 ①key操作 #查找所有的key 127.0.0.1:6379> keys * 1) "pop" 2) "mylist" 3) "lpl" 4) "myset" #设置key的过期时间 返回1表示执行成功,0表示失败,出现问题 127.0.0.1:6379…

Qt Creator mainwindow.obj:-1: error: LNK2019

构建的时候报错: mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __thiscall mynotedig::mynotedig(class QWidget *)" (??0mynotedigQAEPAVQWidgetZ),该符号在函数 "public: void __thiscall MainWindow::mynoteab…

VMPWN的入门级别题目详解(一)

实验一 VMPWN1 题目简介 这是一道基础的VM相关题目,VMPWN的入门级别题目。前面提到VMPWN一般都是接收字节码然后对字节码进行解析,但是这道题目不接受字节码,它接收字节码的更高一级语言:汇编。程序直接接收类似”mov”、”add”…

前端面试题:探索前沿技术与知识深度的关键

在前端开发领域,面试是评估候选人技能和知识水平的重要环节。面试题涵盖了各个方面的前端知识,旨在考察候选人的理解能力和解决问题的能力。本文将介绍一些常见的前端面试题,并结合具体实例说明,帮助读者更好地理解和准备前端面试…

Dockerfile 创建镜像,构建LNMP+wordpress架构

目录 一、Dockerfile 构建镜像 1.Dockerfile 构建 nginx镜像 1.1创建 nginx Dockerfile 目录 1.2编写 Dockerfile 文件 1.3构建nginx镜像 2.Dockerfile 构建 mysql 镜像 2.1创建 mysql Dockerfile 目录 2.2修改mysql配置文件 2.3编写 Dockerfile 文件 2.4构建mysql镜…

[论文笔记] LLM数据集——金融数据集

一、chatglm_金融 ModelScope 魔搭社区 请将modelscope sdk升级到v1.7.2rc0,执行: ​ pip3 install "modelscope1.7.2rc0" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html # 方式1 git clone http://www.modelscope…