https://blog.csdn.net/submarineas/article/details/85289960

    引言
    jupyter notebook简介和安装
    jupyter notebook使用
        bug1:默认浏览器不是谷歌浏览器
        jupyter使用技巧
        bug2:matplotlib中文无法显示
        jupyter引入插件
        bug3:pdf下载问题
        协同开发
        虚拟环境切换
    总结

引言

本篇博文综合了自己的一些使用过程中遭遇的问题,以及一些常用的快捷键,在这里做一个总结。
jupyter notebook简介和安装

在数据科学领域,笔记、代码、图表和注释往往都是相辅相成不可或缺的,而应运而生的jupyter notebook满足了以上所有的要求,基本所有的不论是学生还是相关从业者都会去使用它,因为它的易学,操作简单,另外作为和anaconda一起配套的工具,下载非常方便。

jupyter notebook安装:

第一种方案是直接去官网下载最新版就行了,在半年前还可能会出现说版本不兼容的问题,比如说TensorFlow只能适配3.5,最新的3.6可能还要退环境或者集成一个低版本的解释器啥的,目前好像没听说这类小问题了,基本能在3.6下完美运行。并且下载过程中直接勾选添加进环境变量,那么只要等进度条安装完,那么anaconda下的所有集成环境就配好了。官网如下:
https://www.anaconda.com/

第二种方案就是在命令行输入pip install jupyter notebook,我不建议用这种方案,虽然很大程度上缩小了使用体积,但如果想要在jupyter notebook上加其它的东西,比如说插件,还有一些环境引起的问题,会导致非常麻烦,另外就是和上面对比,python的版本更新速度永远是快于anaconda的,那么换句话来说,python能装的东西anaconda能装,但anaconda能装的东西python不一定能装,这里就有一个最新与稳定的机制了。我个人比较喜欢稳定。
jupyter notebook使用

安装完成后,在系统开始中,就可以找到anaconda的图标,我们可以直接将jupyter图标移动到桌面上,然后双击运行,或者使用我下面这种方式,先打开anaconda Prompt终端,然后输入jupyter notebook。

在这里插入图片描述

看见如上图所示的信息,说明已经启动成功,只要等着浏览器打开就能开始写程序啦。但这里就会出现本篇的第一个bug点。
bug1:默认浏览器不是谷歌浏览器

我们知道作为一个程序员,最常用也是最好用的浏览器那当然是谷歌了,它里面不光是黑科技多,资料查阅也可以说得上全面。如果默认浏览器是谷歌的可以忽略此bug。

OK,那么这里的bug问题是jupyter的启动页面是跟着默认浏览器变的,默认浏览器是啥那么启动页面就是运行哪个浏览器,但不知道有没有win10用户和我一样,就是在控制面板的浏览器设置里,无法修改浏览器的默认设置,重置也没用,可能是我在电脑管家里同时下载谷歌和QQ的问题,电脑管家强行帮我选了QQ,而win10的应用配置又和自动更新一样齐坑无比,在我有限的几次重装系统里,每次都会有这个问题,然而我每次都重蹈覆辙。。所以在这里记录一下。

在终端中输入:

jupyter notebook --generate-config

    1

然后我们能看到当前的配置文件在哪里:
在这里插入图片描述

输入N表示不需要覆盖原来的配置,然后我们去这个绝对路径下找到jupyter_notebook_config.py文件,找到后用编辑器打开,这里我推荐sublime text和notepad++,我这里使用的是notepad++,打开后按键ctrl + F,在本文件中查找 c.NotebookApp.browser

找到后将前面注释去掉,再加上下面这一段话:

import webbrowser
webbrowser.register(
    "chrome",  #自定义名字
    None,
    webbrowser.GenericBrowser(u"C:\\Users\\xuzhenggen\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"))#指定程序所在位置
c.NotebookApp.browser = "chrome"

    1
    2
    3
    4
    5
    6

注意这里上面的自定义名字可以随便写,而路径即为你当前电脑的谷歌浏览器的位置,注意这里路径要用 \\,我也不清楚为什么要这样,按照正则来讲,它和前面的u一样都是转义字符,Windows中用 / 分隔文件,u表示Unicode转义,但这里可能是系统设置问题吧,我们只需要将谷歌的路径复制上去再加一个斜杠就行了。

在这里插入图片描述
jupyter使用技巧

启动完成后,我们可以看到我们的页面了,然后我们就可以开始我们写我们的程序了,下面是一些常用的快捷键记录:
命令模式 (按键 Esc 开启)     说明     编辑模式 ( Enter 键启动)     说明
Enter     转入编辑模式     Tab     代码补全或缩进
Shift-Enter     运行本单元,选中下个单元     Shift-Tab     提示
Ctrl-Enter     运行本单元     Ctrl-]     缩进
Alt-Enter     运行本单元,在其下插入新单元     Ctrl-[     解除缩进
Y     单元转入代码状态     Ctrl-A     全选
M     单元转入markdown状态     Ctrl-Z     复原
R     单元转入raw状态     Ctrl-Shift-Z     再做
1     设定 1 级标题     Ctrl-Y     再做
2     设定 2 级标题     Ctrl-Home     跳到单元开头
3     设定 3 级标题     Ctrl-Up     跳到单元开头
4     设定 4 级标题     Ctrl-End     跳到单元末尾
5     设定 5 级标题     Ctrl-Down     跳到单元末尾
6     设定 6 级标题     Ctrl-Left     跳到左边一个字首
Up     选中上方单元     Ctrl-Right     跳到右边一个字首
K     选中上方单元     Ctrl-Backspace     删除前面一个字
Down     选中下方单元     Ctrl-Delete     删除后面一个字
J     选中下方单元     Esc     进入命令模式
Shift-K     扩大选中上方单元     Ctrl-M     进入命令模式
Shift-J     扩大选中下方单元     Shift-Enter     运行本单元,选中下一单元
A     在上方插入新单元     Ctrl-Enter     运行本单元
B     在下方插入新单元     Alt-Enter     运行本单元,在下面插入一单元
X     剪切选中的单元     Ctrl-Shift–     分割单元
C     复制选中的单元     Ctrl-Shift-Subtract     分割单元
Shift-V     粘贴到上方单元     Ctrl-S     文件存盘
V     粘贴到下方单元     Shift     忽略
Z     恢复删除的最后一个单元     Up     光标上移或转入上一单元
D,D     删除选中的单元     Down     光标下移或转入下一单元
Shift-M     合并选中的单元         
Ctrl-S     文件存盘         
S     文件存盘         
L     转换行号         
O     转换输出         
Shift-O     转换输出滚动         
Esc     关闭页面         
Q     关闭页面         
H     显示快捷键帮助         
I,I     中断Notebook内核         
0,0     重启Notebook内核         
Shift     忽略         
Shift-Space     向上滚动         
Space     向下滚动         

整理自Jupyter Notebook的快捷键
bug2:matplotlib中文无法显示

在Windows中,通常默认编码格式为GB2312和GBK,和Unix和Linux不同,而jupyter的环境应该是UTF-8,并且有些字体是没有完全加载的,所以我们在Windows系统下用matplotlib画图会出现这样的情况:

在这里插入图片描述
我们发现上面的中文格式出现了乱码,所以第一种方式和上面bug1类似,通过改配置文件再重新加载,但这种只适用于非win10用户,win10用户可以用第二种,就是每次画图前,导入两句代码。那么现在来介绍第一种。

进入\anaconda\Lib\site-packages\matplotlib\mpl-data文件夹中,我们会看到一个matplotlibrc的文件,用notepad++或者sublime text打开它,查找font.family,然后用下面两行代码替换掉:

font.family         : sans-serif
font.sans-serif     : Microsoft YaHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

    1
    2

上面两句代码相当于加入了代码未执行的字体与字号,在通常情况下,就可以显示中文图例啦。
在这里插入图片描述

但这种方式在win10中是行不通的,我发现在win10中好像缺少了上述的很多字体格式,比如说Microsoft YaHei(微软雅黑),好像官方包里并没有这个的ttf格式,所以可能需要自己去补充一下文字库,但我是懒得找了,首先我linux和Windows还有kaggle都在用,暂时没有想法修复它,所以下面就是一种治标不治本,但屡试不爽的方法,加上这两行代码就行了:

plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置  
plt.rcParams['axes.unicode_minus'] = False

    1
    2

在这里插入图片描述
jupyter引入插件

在前面我说过为什么要用谷歌浏览器?其实如果单从学术方面来考虑的话,什么浏览器都能搜寻到资料,关键就看有没有梯子罢了。可能谷歌有谷歌学术,相应的会查找得快些。QQ浏览器更多用于知网。但谷歌最好用的地方还在于插件,它里面的插件库包罗万象,很多的时候只有你想不到,没有它缺少的。而jupyter一样,插件也很多。我们需要运行如下命令:

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

    1

在这里插入图片描述

安装成功后,我们就可以进入插件列表,选择我们喜欢的插件类型了,下面是我加载的一些插件:
在这里插入图片描述

ExecuteTime:显示单元格的运行时间和耗时
在pycharm这类的IDE中,每次运行程序,如果我们要知道具体运行时间或者当前程序的执行时间,可能需要调出time模块,设一个start和end值,虽然也行,但应该是没有比jupyter插件方便了,如下:

在这里插入图片描述

Codefolding in Editor:折叠代码

启用CodeMirror功能以允许在Jupyter文件编辑器视图中进行代码折叠。相当于在jupyter中带上了如pycharm、sublime text的代码折叠功能,下面是官方示例,这个我暂时没开:
在这里插入图片描述
在这里插入图片描述

Table of Contents (2)

这个相当于和csdn一样,我每次写博文都会习惯性的添加一个TOC链接以显示目录,这个概念也是一样的,如下官方案例:
在这里插入图片描述

在这里插入图片描述

以上就是一些推荐的插件,正所谓插件就是为了解决麻烦而生的,可能会有人说插件会影响速度,还不如自己写,这个是不能否认的,插件多启动项就多了自然会变慢,这个可以参照wordpress,后台插件千奇百怪,如果要作为网站开发者,仅仅依赖于插件,那么可以肯定的说你的网站是不成功的,最终前台会连着后台一起又卡又慢,谷歌也是一样,只不过速度在我们可接受范围内,但我觉得jupyter作为数据挖掘、机器学习从业者的经典编辑器,加载的这些插件却反而大大减少了我们所需要的时间,也许你说启动变慢了,但那也就1、2秒,总比你跑一个程序十天半个月,没有TOC链接第二天还要从头开始整理代码浪费的时间少。
bug3:pdf下载问题

好了,快捷键知道了,插件也加载完了,然后我们愉快的敲完了代码,想要保存为PDF格式,以便于发给别人检查或者验收,但却突然发现,会报这个错误:
在这里插入图片描述
我是anaconda3.6版本的,不知道之前的有没有这个问题,那么我就需要去下载两个东西:

Pandoc: https://github.com/jgm/pandoc/releases
Miktex: https://miktex.org/download

这里下第一个如果没有梯子的话,可能会网速非常慢,能有个10k都算不错了,建议直接百度找资源或者csdn本站就有,第二个不需要梯子。

安装成功后,我们需要通过路径找到article文件,这里我的路径是F:\anaconda\pkgs\nbconvert-5.3.1-py36h8dc0fde_0\Lib\site-packages\nbconvert\templates\latex,建议在pkgs直接搜索article关键字就行了,然后修改为\documentclass{ctexart}

在这里插入图片描述

然后到此为止就能下载出除了含有中文以外的pdf文件了,如果要下载有中文的PDF,那么当我们选择下载为PDF的时候,它会弹出如下弹窗,这里第一次需要看一下是否我们标记的是China http,至于上下两个,应该没啥太大区别。

在这里插入图片描述

在这里插入图片描述

然后我们就会安装一系列的如xeCJK.sty、ulem.sty、environ.sty、trimspaces.sty等等文件,大概会有十几个到几十个不等的文件,如果我们不想知道下载的是什么,可以将在下载前总是弹出的选项框取消勾选。

那么一切安装成功后,我们就可以看到成功打印出来的PDF文件了,那么到此,从安装到成功打印出一份简单的PDF文件就是这样啦。
在这里插入图片描述
协同开发

jupyter notebook虽然装了插件与各种各样的东西,却还是弥补不了它作为一款浏览器编辑器的事实,所以python的编辑器才会有pycharm、spyder等同样著名的IDE,但我最近几天突然看到量子位的一则消息,说jupyter也能和pycharm等一起开发啦。只需要安装Jupytext:

pip install jupytext

    1

在这里插入图片描述

另外我是写这篇博文的时候装的,具体功能还没用过,但可以分享jupytext作者的博客链接以及到底怎么玩,看下图:
在这里插入图片描述

博客链接(可能需要翻墙):

Introducing Jupytext
虚拟环境切换

关于虚拟环境,不可否认还是Pycharm优秀,它自带有装虚拟环境的功能,而关于虚拟环境的安装,可以看我下面两篇博客介绍:

在Windows下搭建虚拟环境
linux下搭建虚拟环境

这里推荐最好还是在终端创建虚拟环境,稳定并且易于管理。当创建完虚拟环境后,pycharm在启动的时候直接切换,这里就不用我多说了,而jupyter notebook麻烦一些,步骤如下:

首先进入anaconda Prompt,然后输入:

conda activate Test2(虚拟环境名)

    1

进入后可以conda list和pip list看一下当前进入的虚拟环境有什么包,然后找一个叫ipykernel的包,如果没有,那么需要安装:

pip install ipykernel

    1

成功显示如下信息:
在这里插入图片描述

然后就可以将虚拟环境加载进jupyter notebook了,命令如下:

python -m ipykernel install --name Test2

    1

然后就可以在jupyter notebook的右上角选择进入啦:

在这里插入图片描述
总结

关于jupyter,在我使用的过程中大致想总结的问题就那么多,可能还有一些其它方面的我没遇到过,我目前学习的层面也比较浅,模型算法方面推导是已经还可以了,但代码实战还需要花很大力气去完善,另外快年底了,准备开始写年终总结,还有就是个人网站的搭建和敲代码的时间,还需要时刻进行着。
————————————————
版权声明:本文为CSDN博主「submarineas」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/submarineas/article/details/85289960

jupyter notebook安装及使用总结

猜你喜欢

转载自www.cnblogs.com/anovana/p/12094833.html