对于新手来说,选择开发工具是个问题。古人云:工欲善其事,必先利其器。选择合适的开发工具能够大幅提升编码效率,也能很好的夯实编程基础。
一、为什么是jupyter notebook?
对于新手而言,更多的是注重对编程基本功的练习。pycharm与vscode具有自动联想的功能(虽然jn也支持table补全,下文介绍),例如,我们在输入import requests
的时候,刚输入 im
,pycharm与vscode就能联想出import
,这时候只需要按下Enter键就能够完成import
输入,无需敲打逐个字符。这种设计使得在开发大型项目的时候能够很有效的提升开发效率,但是新手而言,更要注重对基础的学习,不多多敲打,你怎么能够知道这个关键字怎么拼写的呢?会出现提笔忘字的情况。
复杂的安装配置过程,容易产生畏惧心理。实际上pycharm与vscode安装配置并不复杂,但是对于一个菜鸟来说,更需要的是那种开箱即用的产品,比如jupyter notebook。说了这么多并不是说pycharm与vscode一无是处。vscode有着强大的插件支持,而且界面美观。pycharm使用起来也如行云流水一般舒畅。但是对于新手尤其是做数据分析和爬虫的小伙伴来说,jupyter notebook是个很不错的选择。
二、如何使用jupyter notebook?
执行如下命令即可:
pip install jupyter notebook
hello,world:
打开你想要写代码的目录,输入 jupyter notebook
:
会自动开启服务,并且网页会弹出jupyter notebook的页面。接着我们新建一个文件:
如图,我们定义一个变量r,它的值为hello,coder
,我们通常的做法是print(r),能够打印r变量。但是在这里直接输入r,然后按下“Ctrl + Enter”键,就能看到r的值被打印出来。这一点就类似于Python的交互式shell,非常方便。
几个常用的快捷键:
Enter
:转入编辑模式Shift-Enter
: 运行本单元,选中下个单元
Ctrl-Enter
: 运行本单元
Alt-Enter
: 运行本单元,在其下插入新单元
Table
:自动补全概念解释之何为单元?
单元也叫代码块
和cell
,下图中,三个变量各占一个代码块。
自动补全GIF演示:
例如我们想要输入print
函数,只需要输入pr然后小拇指顺手按一下Table键
,默认第一个就是,所以我们按下Enter
键即可完成输入,但是不推荐新手使用此功能。
三、jupyter notebook快在哪里?
首先是输出快:
在做爬虫任务时,我们需要及时的看到结果。假设我们现在在爬取某视频网站,要看到结果只需要Ctrl+Enter
即可立马看到结果,并且有足够大的空间展示:
而用vscode之类的呢:
当代码越写越长,留给控制台的空间就越来越小,这给查看打印结果带来了极大的不便。
其次是画图快:
在做数据分析的时,我们随便画个图
jupyter notebook能够直接在当前页面中显示:
而使用vscode等,则会弹出一个图片,还需要点×才能关掉,显然不如前者方便。
四、进阶篇 | 主题与远程使用:
主题的更换:
你觉得jupyter notebook字体太难看,主题也老套?大错特错,接下来我们给jupyter notebook换换主题。安装jupyter主题:
执行:pip install jupyterthemes
查看可用jupyter主题:
执行:jt -l
-
使用主题:
执行:
jt -t onedork -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T -T
刷新网页:
更换成功,如下:
常用参数说明:
-t 主题 -f(字体) -fs(字体大小) -cellw(占屏比或宽度) -ofs(输出段的字号) -T(显示工具栏) -T(显示自己主机名)恢复默认主题:
执行:jt -r
其他主题展示:grade3:
oceans16:
solarizedd:
迫于篇幅,其他请自行测试吧!
一次安装,到处编写:
如果我们有一个服务器的话,可以把jupyter notebook安装到服务器上,由于是网页,所以电脑可以打开写、平板打开也能写,手机也行。这样的好处还在于更换电脑后,不需要再配置环境了,安装过的库仍然存在于你的服务器上。
请确保的你服务器安装了Python3、pip3(一般安装Python3自带)、jupyter notebook:生成配置文件,执行:
jupyter notebook --generate-config
输出:
Writing default config to: /root/.jupyter/jupyter_notebook_config.py也即是在当前用户目录下生成了一个配置文件,我们使用vim编辑这个文件:
vim /root/.jupyter/jupyter_notebook_config.py
按下PGDN
键一直翻到文末,然后按下i
键,输入:
c.NotebookApp.ip = '*' #允许所有IP访问
也可以加入如下以自定义端口:c.NotebookApp.port = 8888
默认就是8888端口,我觉得挺好。然后执行如下命令:nohup jupyter notebook --allow-root > push.log 2>&1 &
它的含义是使jupyter notebook能够在linux系统后台运行,即使我们关掉了shell控制台也不会影响程序的运行。并且允许以root权限运行,另外还将输出日志存放在当前目录下得push.log
中。然后浏览器打开服务器地址:端口
从上图可以看到,是需要密码的,但是我们还没有密码。1.执行 jupyter notebook list
可以看到当前token:
例如:http://LAPTOP-MMVQB8PO:8888/?token=77c06800ae7dbf524038c9bf37159cee0f4dd1d5da6eb4a4这个?token=后面就是我们要的token了,复制它。2.网页拉到下面,填写token并设置密码,点击Log in and set new password
。
是不是感觉jupyter notebook非常简单好用呢?随着技术的增长与需求的变更,我们以后会使用更加强大的IDE,但是你绝对不会忘记jupyter notebook。