Anaconda(miniconda) 和 Jupyter Notebook 使用大揭秘

7,194 阅读6分钟

0. 前言

阅读本笔记需要你对 Python 比较了解,同时对数据统计分析或者机器学习有一定的兴趣

1. 关于 Anaconda 和 Jupyter Notebook

如果想对 Jupyter Notebook 有个深入的了解并且英文不错,请直接移步至官网

Cris 这里大力推荐使用 Anaconda 作为数据分析的工具集和包管理工具,毕竟是 The Most Popular Python Data Science Platform ~,官网在此

关于 Anaconda 的安装和使用,请参考这篇文章,Windows、Mac,Linux 三大平台均有介绍,十分详细~

因为 Anaconda 比较庞大,如果想要精简版的,可以安装miniconda,如何安装请自行百度

如何使用 Jupyter Notebook ,这篇文章其实已经给出了很详细的解答,但是 Cris 仍然希望把自己使用中的一些技巧,总结的经验分享出来,互相学习,upupup!

最后一句话总结:Jupyter Notebook 就是一个针对 Python 的 web 编辑器,轻量级,所见即所得,方便的操作是做数据分析以及机器学习的必备神器!

以下miniconda 部分基于 Windows 平台, Anaconda 部分基于 Linux 平台上

当然,Anaconda 和 miniconda 都是三个平台通用的,如果嫌麻烦,就装 Anaconda,如果想要精简,就装 miniconda

2. 使用 Anaconda(miniconda) 和 Jupyter Notebook

2.1 miniconda 和 Jupyter Notebook 的安装

miniconda 的安装这里不再赘述,可以简单的理解为 Anaconda 的子集,比 Anaconda 精简了非常多,所以比较小巧,但是第三方的包和工具就得自己安装了

关于 miniconda 的使用,其实和 Anaconda 的使用几乎一致,先来简单谈谈 miniconda 如何安装使用 Jupyter Notebook

首先需要安装 Jupyter Notebook

安装完毕后,就可以通过 jupyter notebook 命令启动

但是因为 Anaconda(miniconda) 经常会根据项目的不同来建立不同的虚拟环境,这里以 Cris 的miniconda 为例

我们当前只在默认的base 环境下安装了 Jupyter Notebook,如果要想Jupyter Notebook识别 test 虚拟环境,那么还需要在 test 虚拟环境中安装一下 Jupyter Notebook 的kernel 包

(base) C:\Users\cris>conda activate test

首先切换到 test 虚拟环境,然后执行以下命令

conda install -n python_env ipykernel

python_env 就是你的虚拟环境名,Cris 这里是test.执行完毕后,返回到base环境,再重启Jupyter Notebook

然后Jupyter Notebook 就可以识别不同的虚拟环境了

注意: 如果Jupyter Notebook 还是无法识别虚拟环境(主要是miniconda用户),还需要在base 环境下安装nb_conda包

(base) C:\Users\cris>conda install nb_conda

然后再重启Jupyter Notebook 就可以看见上面的虚拟环境了

2.2 Anaconda(miniconda) 的安装和使用

关于 Anaconda ,官网地址

引用维基百科

Anaconda 是一种Python语言的免费增值开源发行版,用于进行大规模数据处理、预测分析,和科学计算,致力于简化包的管理和部署。Anaconda使用软件包管理系统Conda进行包管理。

简单来说,Anaconda 就是专门用于管理 Python 包环境以及部署的工具,同时自带了很多关于数据处理的工具包,例如:Pandas,NumPy 等等,并且还提供了一个网页版本的 Jupiter Notebook 编辑器来方便的编写Python 数据处理代码,类似于 pip3 这种 Python 自带的包下载和管理模块(Anaconda 中是 conda 模块),但是要强大很多。可以简单的理解为一个装满了各种 Python 第三方工具包的仓库,和我们本地的 Maven 有点类似

① 安装 Anaconda

当我们装好 Anaconda 之后,输入以下命令表示 Anaconda 安装成功

O_O[cris@cris:~]$ conda -V
conda 4.5.11
^_^[cris@cris:~]$ 

这个版本的 Anaconda 自带的Python 解释器是 3.7 版本,默认 Base 虚拟环境,并且自带了一系列包可以使用

^_^[cris@cris:~]$ conda list

查看当前的 Base 环境有哪些包

② 什么是 Base 虚拟环境?

就是当前 Anaconda 默认自带的一个仓库(可以这么理解),在这个仓库中有 Anaconda 自带的很多Python 第三方包,包括Python 解释器(3.7 版本)

实际开发中,每个 Python 项目依赖的包都不同,Python 解释器版本也可能不同;每个Python 项目可能是你一人开发,也可能是多人开发;为了保证每个 Python 项目的环境(Python 解释器和项目依赖包)独立,互不干预,以及同一个Python 项目的所有人开发环境一致,Anaconda 可以为每一个项目单独配置Python 的开发和运行环境,也就是 Anaconda 中的虚拟环境(可以类比为仓库)

③ 创建 Anaconda 虚拟环境

使用 conda create -n your_env_name python=X.X(2.7、3.6等),anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。 指定python版本为2.7,注意至少需要指定python版本或者要安装的包, 在不指定python版本时,自动安装最新python版本。

^_^[cris@cris:~]$ conda create -n test python=3.6

然后查看当前 Anaconda 的所有虚拟环境

可以发现 test 虚拟环境创建好了,当前默认是 Anaconda 的Base 环境,怎么切换到 test 环境呢?

④ 切换环境

(base) O_O[cris@cris:~]$ conda activate test
(test) ^_^[cris@cris:~]$ 

切换后,我们进入 Python 的Terminal

可以发现Python 版本已经变为了 3.6

退出终端,我们再使用 conda list 命令查看当前 Test 环境下的包

可以发现和 base 环境比,少了很多很多包

⑤ 退出和删除环境

退出当前环境回到默认的 Base 环境非常简单

删除环境也很简单

conda remove -n env_name –all 即可,这里 Cris 就不测试了

⑥ 环境安装包管理

  • 安装指定环境的包(默认当前环境,一般当前环境都是设置为 base)
conda install -n <env_name> <package_name>
# -n 或者 --name 参数就是用来指定环境的
  • 当前环境安装包
conda install <package_name>
  • 删除指定环境的包
conda remove -n <env_name> <package_name>
  • 删除当前环境的包
conda remove <package_name>
  • 更新当前环境的包
conda update <package_name>
  • 更新当前环境所有包
(base) O_O[cris@cris:~]$ conda update --all
  • 更新当前环境多个指定包,则包名以空格隔开,向后排列。如:conda update pandas numpy matplotlib即更新pandas、numpy、matplotlib包。

  • 更新conda,保持conda最新

    conda update conda
    
  • 更新anaconda

    conda update anaconda 
    
  • 查找包

    conda search package_name
    # conda search numpy
    

⑦ 环境复制和导出

conda create --name new_env_name --clone copied_env_name

复制的新环境和原环境配置一致

导出当前环境的配置信息

(test) ^_^[cris@cris:~]$ conda env export > environment.yaml

发现当前目录下多了一个配置文件

查看这个文件,就是我们当前 test 环境的所有配置信息

name: test
channels:
  - defaults
dependencies:
  - ca-certificates=2018.03.07=0
  - certifi=2018.11.29=py36_0
  - libedit=3.1.20170329=h6b74fdf_2
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - ncurses=6.1=he6710b0_1
  - openssl=1.1.1a=h7b6447c_0
  - pip=18.1=py36_0
  - python=3.6.8=h0371630_0
  - readline=7.0=h7b6447c_5
  - setuptools=40.6.3=py36_0
  - sqlite=3.26.0=h7b6447c_0
  - tk=8.6.8=hbc83047_0
  - wheel=0.32.3=py36_0
  - xz=5.2.4=h14c3975_4
  - zlib=1.2.11=h7b6447c_3
prefix: /home/cris/module/anaconda3/envs/test

这样子就可以在别人电脑上快速搭建统一的环境

# // 用配置文件创建新的虚拟环境
$ conda env create -f environment.yaml

参考博客

参考文章

⑧ Anaconda 和 Visual Studio Code 的对接

打开 Visual Studio Code,可以随意调整 Python 的运行环境

⑨ Anaconda 和 PyCharm 对接

稍微麻烦一点,先要新建一个工程

然后选择 Anaconda 环境

项目创建好后,打开project 选项

注意:PyCharm 引用 Anaconda 环境时,项目创建完毕,右下角消息栏可能会报出 Inotify Watches Limit 提示,官方的解决方案链接,照着做即可

**ps:关于 PyCharm 的免费激活,参考**

⑩ 让 Anaconda 飞起来

Anaconda 默认采用的国外镜像网站,这里强力推荐将镜像源换成国内清华大学的镜像

修改文章在此,强力推荐,让你的 Anaconda 跑的比博尔特还快~

注意的是,修改路径均在根目录,并且最新版本的 Anaconda 使用 conda info 查看当前配置信息如下

^_^[cris@cris:~]$ conda info

     active environment : base
    active env location : /home/cris/module/anaconda3
            shell level : 1
       user config file : /home/cris/.condarc
 populated config files : /home/cris/.condarc
          conda version : 4.5.11
    conda-build version : 3.15.1
         python version : 3.7.0.final.0
       base environment : /home/cris/module/anaconda3  (writable)
           channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
                          https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
          package cache : /home/cris/module/anaconda3/pkgs
                          /home/cris/.conda/pkgs
       envs directories : /home/cris/module/anaconda3/envs
                          /home/cris/.conda/envs
               platform : linux-64
             user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Linux/4.15.0-29deepin-generic deepin/15.8 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

2.3 Jupyter Notebook 使用

使用 Jupyter Notebook 完成科学计算的测试和开发,已经是现在的主流,下面就简单介绍一下关于 Jupyter Notebook 的使用

参考博客一

参考博客二

快捷键

快捷键参考

具体的使用很简单,在命令行模式下,按下 h 键即可显示快捷键列表,并且还都是中文解释的,赞!

具体的快捷键使用这里不再赘述,想不起来就按 h

Jupyter Notebook 插件拓展

必须提前安装 Jupyter Notebook 插件管理包

(base) C:\Users\cris>conda install -c conda-forge jupyter_contrib_nbextensions

然后重启 Jupyter Notebook

插件使用可以参考上面的两篇博客,这里记录Cris 使用插件中碰到的问题

使用格式化插件的时候,如果在新建的虚拟环境下无法使用,需要额外在虚拟环境导入base环境下载好的插件

(test) C:\Users\cris>conda install yapf

请先在base环境下执行以上命令,然后就可以在test 环境下使用代码格式化命令了

(ctrl+l 当前单元格格式化代码,shift+ctrl+l 全局单元格格式化代码)

待续...