Anaconda虚拟环境

Anaconda的好处:
1、针对不同的程序可能需要不同的python环境和包,Anaconda可以帮我们虚拟出多个python环境,就像一个个容器一样,我们可以在不同python环境自由切换。
2、Anaconda可以帮我们管理这些虚拟环境的包,我们可以针对单个虚拟环境进行个性化的包安装和配置。
3、当我们需要安装某个新的与其他包存在依赖包时,如果我们用pip命令安装,则安装了这个包之后,还需要手动一个个安装它依赖的包。但是如果用conda命令就不同了,只需要输入“conda install pkg-name”,conda会自动搜索安装与这个包相关的包。
4、我们可以轻松的用已有的虚拟环境克隆一个新的虚拟环境出来。

Anaconda常用命令

查看版本

conda --version:查看conda版本
conda info :查看conda信息

虚拟环境管理和创建

conda env list // 列出conda管理的所有环境
conda create --name your_env_name  //创建虚拟环境
conda create -n your_env_name python=3  // 创建指定python版本的虚拟环境
conda create --name new_env_name --clone old_env_name  //复制某个环境conda env export > environment.yaml  // 导出当前环境的包信息
conda env create -f environment.yaml  // 用上步导出的配置文件创建新的相同的虚拟环境

create操作只安装必要的pkg,如python,pip等,其他第三方库基本没有,如果需要安装anaconda集合,可以:

# 在当前环境下安装anaconda包集合
conda install anaconda# 结合创建环境的命令,以上操作可以合并为
conda create -n python35 python=3.5 anaconda

虚拟环境删除

conda remove -n your_env_name --all // 删除某个虚拟环境及下属所有包

虚拟环境切换

source activate  // 切换到base环境
source activate learn // 切换到learn环境
source deactivate  //关闭当前虚拟环境

注:win10下运行时,若提示不认识source命令,可去掉source,直接用activate和deactivate
包管理
在某个虚拟环境中单独进行包管理时用conda命令,用pip命令会对所有环境的包都修改了。

conda list // 列出当前环境的所有包
conda list -n your_env_name  //列举一个非当前活跃环境下的所有包

查找:

conda list | grep package-name //查找某个包
conda search package-name  //查找包

安装:

  conda install  package-name  //为当前环境安装包conda install -n env_name package_name  //为指定环境安装某个包

卸载:

conda remove package-name  //卸载包

更新:

conda update package-name //更新某个包
conda update --all //更新所有包

指定channels更新包:

conda install hdf5=1.10.5 -c conda-forge

-c表示–channel,表示包hdf5包被指定从conda-forge这个channel下载。目前anaconda源中hdf5最高版本为1.10.4,因此要指定为conda-forge源。

为某个虚拟环境安装相应包
语法:

conda install -n your_env_name [package]

例子:

conda install -n python363 joblib  #给名为python363的虚拟环境安装joblib包

阻止conda自己更新(这个我觉得太有必要了!)

conda config --set auto_update_conda False

channel管理
conda换源
conda的base环境和其他虚拟环境的源是同步的,在虚拟环境对源进行的操作,base环境也会更新。
C:\Users\lmkhd下的.condarc文件即为源的配置文件,所有环境公用。

conda添加channel(下载渠道)的命令:

conda config --add channels conda-forge

注:添加时要写

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

注意最后加一个斜杠

添加完所有的channel后运行下面这句话:

conda config --set show_channel_urls yes

意思是从channel中安装包时显示channel的url,这样就可以知道包的安装来源了。

conda移除channel(下载渠道)的命令:

conda config --remove channels conda-forge

查看channels的信息

conda config --show channels

查看channel优先级顺序:

conda config --get channels

在输出信息中,# lowest priority表示最低优先级,# highest priority表示最高优先级,从低到高顺序排列。

Tips:

  • 当我们用conda list查看某个环境里安装的包时,可以看到包的两种来源:pypi和tsinghua源,源为pypi表示当时用pip3命令安装的,删除也要用pip3,用conda命令删除可能找不到这个包,导致删除失败。
  • 源为pypi的包可以卸载后用conda命令安装,改为tsinghua源。
  • 用conda或者pip3命令卸载某个包时,卸载后要用conda list查看是否卸载成功,有时候显示卸载成功了,但是用conda list查看时可能还会存在
  • conda环境中的包的源如果是pypi和tsinghua两种混合存在的,可能会引发一些奇怪的错误,这是由于两种源的包可能不兼容导致的(因为包和包之间会存在依赖性)。解决方法是卸载后,用conda命令重装。例如安装tensorflow,tensorflow包和protobuf、h5py、tensorboard、werkzeug这几个包都有紧密联系,如果这些包来自不同的源,就有可能会报各种奇怪的错误。这时候只能将这些包都卸载干净(用conda和pip3命令反复卸载,最后再确认是否卸载干净),然后重新用conda命令安装tf。

参考:
[命令]使用的conda命令大全
Conda常用命令整理
anaconda的基本使用方法
Anaconda完全入门指南

conda常用命令和基础知识整理相关推荐

  1. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  2. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  3. 使用Aspose.Cells的基础知识整理

    使用Aspose.Cells的基础知识整理 转自 http://www.cnblogs.com/kenblove/archive/2009/01/07/1371104.html 这两天用Aspose. ...

  4. mysql中需要提交的操作_MySQL常用操作及基础知识

    原标题:MySQL常用操作及基础知识 1.启动和关闭mysql服务器: service mysql start service mysql stop 2.重启MySQL服务: service mysq ...

  5. centos7创建asm磁盘_Oracle ASM 磁盘组基础知识整理(收藏版)

    为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的,前两周里因一套生产环境数据库磁盘不足无法对其进行表空间扩容,需要向存储岗申请存储资源,当存储岗划好资源加完存 ...

  6. Web前端基础知识整理

    1. 前端基础知识 文件分类 XML(扩展标记语言) 装载有格式的数据信息,用于各个框架和技术的配置文件描述 特点: 扩展名为.xml 内容区分大小写 标签要成对出现,形成容器,只能有一个 标签按正确 ...

  7. 矩阵论(零):线性代数基础知识整理(1)——逆矩阵、(广义)初等变换、满秩分解

    矩阵论专栏:专栏(文章按照顺序排序) 线性代数是矩阵论的先修课程,本篇博客整理线性代数的基础理论知识,为矩阵论的学习做准备.限于篇幅,梳理的重点将在定理和结论上(只给出部分必要的定义),对最基础的概念 ...

  8. CSP-S初赛基础知识整理

    文章目录 CSP-S初赛基础知识整理 RT [1]计算机基础知识 计算机系统的组成 计算机硬件的五大组成 [1-2]进制及其转化和运算 [1-2]二进制 [1]基本定义及应用 [1]基本运算 [2]位 ...

  9. jQuery基础知识整理

    jQuery基础知识整理 jQuery简介 什么是jQuery(了解) jQuery简化JS代码 jQuery的核心思想:"写的更少,但做的更多"(write less,do mo ...

  10. 矩阵论(零):线性代数基础知识整理(5)——特征值与相似

    矩阵论专栏:专栏(文章按照顺序排序) 本篇博客的上篇是矩阵论(零):线性代数基础知识整理(4)--线性空间与线性变换,梳理了线性空间与线性变换的相关内容.本文主要整理矩阵的特征值与相似的相关内容. 方 ...

最新文章

  1. TileList自动滚动指定单元格,可视部分
  2. 强烈推荐10个新媒体运营必备工具,极大提高工作效率
  3. Python_List对象内置方法详解
  4. c++98不支持set初始化列表
  5. 安全多方计算新突破!阿里首次实现“公开可验证” 的安全方案
  6. [转]如何完美应对面试
  7. 【有容云案例系列】基于Jenkins和Kubernetes的CI工作流
  8. Sentinel流控规则简介_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0032
  9. 面经 |算法工程师面试题汇总分享
  10. 以终端模式连接远程桌面
  11. Android的ADT的安装
  12. BeanNotOfRequiredTypeException,Bean named ‘xx‘ is excepted to be of type ‘xx‘ but was ‘$Proxy30 ‘
  13. PCB生成BOM表、网络表添加logo并且输出为Gerber文件
  14. python写剧情文字游戏_零基础学Python——制作简单文字游戏
  15. 360 vs QQ 有意思的大战
  16. 高德地图定位 地图比例缩放
  17. iOS-监听UITextView、UITextField键盘删除键
  18. 【JS基础】e.preventDefault() 阻止默认操作
  19. github在线修改文章
  20. 跨越40年的甲骨文公司,正在成为年轻一代的时尚选择

热门文章

  1. 无刷新,动态设置页面焦点的问题
  2. 教你如何构建异步服务器和客户端的 Kotlin 框架 Ktor
  3. 小程序WXML 使用小结
  4. jabberd2分析
  5. jquery实现点击元素,如果弹出层隐藏则显示,显示则隐藏
  6. linux内核启动的优化
  7. 大华电子秤客户端开发文档_『飞桨』全流程开发工具PaddleX
  8. STC学习:八位数码管+流水灯
  9. ssh 切换用户_从零开始学习华为路由交换 | 配置ssh远程管理
  10. 下两个网段转发的路由设置_一台路由器下如何实现多个网络互通