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

anaconda常用指令学习

查看有多少个环境?

conda info -e

        Anaconda Prompt命令窗口下,输入python即可python,同时查看Python的版本。
        输入print('haha'),即可执行代码。
        输入exit()退出Python。
        输入conda info可以查看当前虚拟环境的信息,比如:所在版本、目录,镜像源等。

查看conda版本

conda --version

查看conda的环境配置

conda config --show

设置镜像

        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

查看安装源

conda config --show-sources

添加安装源

清华大学的:
 

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/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

删除镜像源

conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/


设置安装Python软件包时显示镜像源地址

conda config --set show_channel_urls yes

更新conda

conda update conda

更新Anaconda整体

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

conda update Anaconda

查询某个命令的帮助 

conda create --help

管理环境

        Conda允许你创建相互隔离的独立环境,这些环境被称之为虚拟环境(Virtual Environment),这些环境各自包含属于自己的文件、包以及他们的依存关系,并且不会相互干扰。

        Anaconda有一个缺省的名为base的环境。但是不建议把程序放在base环境中,应该创建不同的虚拟环境分别管理不同的开发项目。

      这个涉及到一个根本的问题:为什么我们需要虚拟环境呢?

     举一个简单的例子,想象一下你有多个项目要开发,每个项目中都有一些包要依赖于某个共同的包,但是各自的所需要的版本不一致,有一些需要低版本的,有些需要高版本的。然后你就陷入了众口难调的困境。

      为不同的项目创建虚拟环境就可以把不同项目隔离开来,各自使用自己所需要的软件环境。

创建虚拟环境


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

conda create -n env_name python=3.8

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

        创建后,env_name文件可以在Anaconda安装目录envs文件下找到。

       在不指定python版本时,自动创建基于最新python版本的虚拟环境。


查看有哪些虚拟环境

        以下三条命令都可以。注意最后一个是”--”,而不是“-”.

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

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

激活虚拟环境

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

conda activate env_name

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

退出虚拟环境

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

conda activate
conda deactivate

        有意思的是,以上两条命令只中任一条都会让你回到base environment,它们从不同的角度出发到达了同一个目的地。

        可以这样理解:

        activate的缺省值是base,

        deactivate的缺省值是当前环境,因此它们最终的结果都是回到base。

删除虚拟环境

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

conda remove --name env_name --all

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

conda remove --name env_name  package_name

删除指定的conda环境

通过环境名删除

conda remove --name 要删除的环境名 --all

通过指定环境文件位置删除(这个方法可以删除不同位置的同名环境)

conda remove -p 要删除的环境所在位置 --all  
例如: 

conda remove -p C:\Users\user_name\.conda\envs\env_name --all

复制conda环境

         conda create --name 新环境名 --clone 被复制的环境名  
         例如: 


conda create --name new_base --clone base

导出环境 

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

        #获得环境中的所有配置

conda env export --name myenv > myenv.yml

        #重新还原环境

conda env create -f  myenv.yml

导出当前虚拟环境到指定environment.yml文件

        # 在当前目录下生成环境文件

conda env export > environment.yml  

        # 指定文件路径

conda env export > "environment.yml文件路径"

使用requirements.txt文件管理conda虚拟环境中的Python软件包

        ① 导出虚拟环境中的Python软件包到requirements.txt文件

conda list -e > requirements.txt


        ② 使用requirements.txt文件安装Python软件包

conda install --yes --file requirements.txt

conda从requirements.txt文件安装需求包

conda install --file requirements.txt --yes

conda指令执行技巧

        在指令后输入-y或者--yes可以制动确认指令,避免后期再次输入y确认,例如:

        # 自动创建python环境demo,并指定python版本为3.8

pip create --name demo python=3.8 --yes

        # 自动安装numpy、pandas和matplotlib软件包

pip install numpy pandas matplotlib -y

包(Package)的管理


查询包的安装情况


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

conda list

查看指定环境中的Python软件包

conda list --name 环境名

显示当前环境中的指定包

conda list 包名

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

conda search package_name

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

精确查找当前环境中可以安装的包

conda search --full-name 包的准确名字

模糊查找当前环境中可以安装的包

codna search 包的模糊名字

查询是否有安装某个包

        用conda list后跟package名来查找某个指定的包是否已安装,而且支持*通配模糊查找。

conda list pkgname 

conda list pkgname*   

        当然如果你确认是否有某个包的目的是要对其进行更新的话,那就直接执行conda update pkgname即可,如果该包没有安装的话,conda会报告PackageNotInstalledError错误(然后改用conda install即可)。

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

conda install package_name

       当然也可以如上所述在创建虚拟环境的同时安装包,但是并不建议。

       安装完一个包后可以执行conda list确认现在列表中是否已经包含了新安装的包。

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

conda install numpy=0.20.3

       

conda命令在当前激活环境中安装需要的包

conda install 包名 

# 例如:
conda install numpy

定conda环境安装制定版本的包

# 注意这里的版本号不是必须的

conda install --name 环境名 要安装的包名=版本号

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

conda update numpy

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

conda install pkg_name -c conda_forge

        conda-forge 是一个社区驱动的 Conda 通道,它提供了一个广泛的软件包集合,这些软件包通常比官方 Anaconda 通道中的软件包更新更频繁,并且包含了许多官方通道中可能找不到的软件包。

        当你使用 conda install -c conda-forge some-package 这样的命令时,你正在告诉 Conda 从 conda-forge 通道中查找并安装 some-package。这里的 -c--channel 参数用于指定软件包的来源通道。

        conda-forge 通道是由全球开发者社区维护的,它不仅包括 Python 软件包,还包括其他语言的软件包以及科学计算和数据科学领域所需的许多工具和库。由于其社区性质,conda-forge 经常能更快地提供软件包的新版本,而且对于一些小众或最新的项目,conda-forge 可能是唯一提供这些软件包的 Conda 通道。

        因此,如果你在官方 Anaconda 通道中找不到需要的软件包版本,或者需要一个更新的版本,那么使用 conda-forge 通道往往是一个很好的选择。不过,由于 conda-forge 通道中的软件包可能更新频繁,有时也可能遇到兼容性问题,尤其是当与其他通道中的软件包结合使用时。在这种情况下,你可能需要仔细检查软件包的依赖关系,以确保它们能够协同工作。

conda卸载包

conda uninstall package_name

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

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

conda uninstall package_name --force

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

        一个直观的理解就是,如果一个包A被删除了,而依赖于它的包B、C等却没有删除,但是那些包其实也已经不可用了。

        另一方面,之后你又安装了A的新版本,而不幸的是,B、C却与新版本的A不兼容因此依然是不可用的。

清理anaconda缓存

conda clean -p

     # 删除没有用的包 --packages

conda clean -t 

     # 删除tar打包 --tarballs

conda clean -y -all

        # 删除所有的安装包及cache(索引缓存、锁定文件、未使用过的包和tar包)
        关于清除命令的更详细的说明,可以执行以下命令进行查询:

conda clean -h

        conda就像个守财奴一样,把每个历史安装包都会好好保存。

        好处是可以很方便地恢复到旧的历史版本,坏处是占内存空间。

Python版本的管理

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

将版本变更到指定版本

conda install python=3.5

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

python --version


将python版本更新到最新版本

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

conda update python

conda install vs pip install,有什么区别?

        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卸载。

        pip和conda在安装软件包时,在依赖关系方面的处理机制不同。

        pip在递归的串行循环中安装依赖项,不会确保同时满足所有软件包的依赖关系,如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式被破坏掉;

        conda使用SAT(satisfiability)solver来验证是否满足环境中安装的所有软件包的所有要求,只要有关依赖项的软件包元数据正确,conda就会按预期产生可用的环境。

能否混用conda和pip?

        首先不建议混用。

        混用容易导致库的依赖关系出现混乱,然后突然哪天环境可能就崩了,安装不了新的包,无法进行conda update之类的。

        其次,由于conda的库确实不如pip的库丰富{很多包只在 pip 有:PYPI有15万可用包,而Anaconda repository中(使用conda命令安装)提供了1,500多个软件包,Anaconda cloud上(使用conda-forge或bioconda命令安装)的几千种其他软件包。},

        所以有时候可能迫不得已要使用pip安装。

        切记,只有在conda install搞不定时才使用pip intall。 

        而且,最后使用虚拟环境进行环境隔离。

安装在哪里?

        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文件夹中。


如何判断conda中某个包是通过conda还是pip安装的?

        执行​ conda list ,用pip安装的包显示的build项目为pypi

conda configuration

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

condarc文件在哪儿? 

        执行conda info,会有信息显示。

conda info

Channel管理

追加conda-forge channel:

conda config --add channels conda-forge

移除conda-forge channel:

conda config --remove channels conda-forge

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

conda config --get channels

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 企业网络实验dhcp-snooping、ip source check,防非法dhcp服务器、自动获取ip(虚拟机充当DHCP服务器)、禁手动修改IP
  • 【爬虫】Python实现,模拟天眼查登录验证获取token
  • windows电脑的linux虚拟机连接电脑网络的方法
  • 项目收获总结--本地缓存方案选型及使用缓存的坑
  • 大数据基础:Hadoop之MapReduce重点架构原理
  • Stable Diffusion / huggingface 相关配置问题汇总
  • 移动端 火星坐标体系、百度坐标体系和全球坐标体系,该如何选择?
  • threadx netxduo stm32f407上实现http server
  • bug修复 修复修复修复
  • 【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化
  • SpringBoot实战:处理全局异常
  • Apache Spark详解
  • CSS学习碎碎念之卡片展示
  • 《昇思25天学习打卡营第20天|onereal》
  • 计算机视觉之Vision Transformer图像分类
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【译】理解JavaScript:new 关键字
  • ES6系列(二)变量的解构赋值
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • node-glob通配符
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redash本地开发环境搭建
  • Spark RDD学习: aggregate函数
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • windows-nginx-https-本地配置
  • yii2中session跨域名的问题
  • 飞驰在Mesos的涡轮引擎上
  • 小程序 setData 学问多
  • 小程序开发中的那些坑
  • 译米田引理
  • 怎么把视频里的音乐提取出来
  • 湖北分布式智能数据采集方法有哪些?
  • 交换综合实验一
  • #{}和${}的区别是什么 -- java面试
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (03)光刻——半导体电路的绘制
  • (k8s)Kubernetes本地存储接入
  • (PADS学习)第二章:原理图绘制 第一部分
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (转)shell调试方法
  • (转)我也是一只IT小小鸟
  • (自适应手机端)行业协会机构网站模板
  • .net生成的类,跨工程调用显示注释
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • [ Socket学习 ] 第一章:网络基础知识
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce