conda虚拟环境总结与解读

文章目录

  • 前言
  • conda环境概述
  • conda有什么用
  • conda的环境层级
  • Miniconda安装
  • 与Anaconda的对比
  • 注意版本与安装包来源
  • conda命令
  • jupyter notebook安装+扩展
  • 安装层级
  • jupyter notebook
  • 虚拟环境切换插件:nb_conda
  • 主题切换插件:jupyter_themes
  • 扩展插件集合:nb_extensions
  • conda环境创建与基本配置
  • conda环境完善
  • 基本命令
  • 包找不到的情况
  • 下载速度太慢
  • 使用场景:IDE中使用
  • jupyter notebook中
  • vscode&PyCharm
  • 进阶:Miniconda目录结构
  • 前言

    csdn上有很多关于conda的文章,但是一直没有一个宏观一些的文章,我将从宏观角度出发,对文章进行一个整合,解读,将新同学从conda环境入门到配置,应用全流程进行解读。

    当然,这篇文章因为是宏观一些,可能很多同学不能一次性看懂,没关系,这个可以反复看,在不同阶段都可以提供帮助。

    conda环境概述

    conda有什么用

    一般需要用conda的时候,python已经学到一定程度了,开始进行一些应用了,这时就会有一种场景:A任务需要x,y包,B任务需要z,w包,但是y包和z包冲突,你无法同时做AB任务。

    这时就需要用两个conda环境,分别安装xy包以及zw包,两个环境互相隔离,互不影响。

    具体点,比如A代码需要tensorflow 1,B代码需要tensorflow 2,这也需要两个环境来分别承载。

    进一步,如果你觉得某个环境不好了,直接进行一个删除,重装环境也很容易。

    很好用吧,至于具体怎么在各种IDE中用,怎么切换,大致就如下图,很方便,配置好以后就可以一键切换。

    conda的环境层级

    前面说了,conda可以创建若干个虚拟环境,你的电脑也可以安装python环境,miniconda也会自带python环境,这几个环境有什么关系呢?

    首先是电脑的python环境和Miniconda环境应该是同一等级的,那当你在命令行里运行python命令的时候,优先选择哪个取决于环境变量的配置。一般安装了Miniconda,尤其是勾选了将路径添加到path后,默认的环境就会变成Miniconda自带的python。

    环境变量是什么

    我们把这两个称作基础环境,在miniconda里一般叫base或者root。

    之后就是conda create创建的虚拟环境了,这些都是子环境。虽说叫子环境,但是实际上实际使用base和其他环境没太大区别,只不过不可以删除,所以从逻辑上我们把他提高高度,把全局的包都按在base里。

    请添加图片描述

    Miniconda安装

    与Anaconda的对比

    很多人推荐安装anaconda,但是我推荐miniconda。

    anaconda相当于一大堆包+conda工具,但是实际上这一大堆包没几个能用上的,占用空间太大,而且重装也很麻烦。

    miniconda相当于一点基础包+conda工具。缺的包到时候自己安装就好。

    我推荐尽量用miniconda从头开始安包,你对包的理解会更深。

    注意版本与安装包来源

    很多人就喜欢往高版本安,但是你去看工业界,都是用的稳定版,高版本一方面不稳定,另一方面环境适配也不太好。容易出现基础环境下包冲突的问题。

    所以推荐安装3.7版本64位的Miniconda。

    还有,推荐到官网下载,镜像网站下下来的,可能会有问题,这边有一个朋友就是被镜像搞了一下午心态,结果换回官网一下就成了。

    Miniconda下载

    conda命令

    conda工具的命令网上有很多。

    conda常用命令

    需要注意的是,在虚拟环境里(包括base环境)安装包的时候,尽量用conda而不是pip,因为conda在包依赖的管理上更好。当我们conda安不了的时候,才能用pip。

    虽然在conda环境里用pip也可以把包安到虚拟环境里,但是终归会有未知的影响。

    conda install package_name
    

    jupyter notebook安装+扩展

    安装层级

    首先你要知道,jupyter notebook是一个IDE,一个用户只需要一个IDE即可,而IDE可以调用各种conda虚拟环境,这说明jupyter notebook的层级,应该是miniconda级别的,是基础环境级别的。

    所以直接在base里运行命令安装

    jupyter notebook

    conda install jupyter
    

    jupyter安装

    虚拟环境切换插件:nb_conda

    光有虚拟环境还不行,要想在jupyter notebook里切换,需要一个插件。

    conda install nb_conda
    

    不过,后面还需要在conda环境里安装ipykernel才行。

    主题切换插件:jupyter_themes

    换一个清新的主题,调一调字体等布局,会很舒服。

    切换主题

    扩展插件集合:nb_extensions

    更多插件可以提高效率。

    扩展插件

    conda环境创建与基本配置

    一般安装只需要两个注意点,一个是name,一个是python版本

    如果没有特别要求,一般安装3.7或者3.8。不加python版本命令,他就会安装3.10,这个版本的python不是很好用。

    conda create -n env_name python=3.8
    

    之后就可以激活conda环境进行进一步配置了

    conda activate env_name
    

    安装ipykernel,否则不会被nb_conda插件识别出来。很多文章里都写得是安装jupyter notebook,他们比较菜,没有认识到本质,其实只需要一个kernel即可,没必要安装整个jupyter.

    conda install ipykernel
    

    conda环境完善

    基本命令

    到这里,在jupyter notebook里就可以随意切换conda环境了,之后就是环境自定义了,想安什么包就安什么包即可。

    conda install package_name
    

    包找不到的情况

    有时候conda找不到,可以添加-c conda-forge命令使用额外源,以pynput库举例

    conda install pynput -c conda-forge
    

    最后的最后,没办法了,你再用pip

    pip install package_name
    

    下载速度太慢

    这个主要是因为软件包源头

    conda换源

    使用场景:IDE中使用

    jupyter notebook中

    其实这个前面已经说完了。

    vscode&PyCharm

    这两个IDE都可以在右下角切换环境,其中conda环境也可以切换。

    进阶:Miniconda目录结构

    第一级是Miniconda根目录,下面有若干个文件夹:

    1. bin有二进制文件
    2. scripts也是可执行的脚本文件
    3. Lib是base环境的库,其中site-packages是conda install的位置
    4. envs是虚拟环境目录。

    envs下有若干目录,目录名字与虚拟环境名字对应

    进入某个虚拟环境目录,Lib目录下面是虚拟环境的库

    其中site-packages是conda install的位置。

    这种层级结构符合我们前面说的,虽然base用的时候和虚拟环境类似,但是本质上base是凌驾于虚拟环境之上的。

    物联沃分享整理
    物联沃-IOTWORD物联网 » conda虚拟环境总结与解读

    发表评论