1 jupyter notebook

开发、文档编写、运行代码和展示结果

1.1 windows中安装启动

conda install jupyter notebook
或
pip3 install jupyter
设置Jupyter Notebook文件存放位置
Windows系统的配置文件路径:C:\Users\<user_name>\.jupyter\
Linux/macOS系统的配置文件路径:/Users/<user_name>/.jupyter/ 或 ~/.jupyter/
配置文件名:jupyter_notebook_config.py

(1)进入工作目录
CMD>d:
CMD> cd D:/LEARN/jupyter-notebook
(2)激活Anaconda中的python虚拟环境
CMD> conda activate python36
(3)运行jupyter
(3-1)默认端口启动
CMD> jupyter notebook
如果同时启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”。
(3-2)指定端口启动
CMD>jupyter notebook --port 9999
(3-3)启动服务器但不打开浏览器
CMD>jupyter notebook --no-browser

1.2 Linux中安装启动

#(1)安装jupyter notebook
$ sudo pip3 install jupyter notebook
$ sudo pip3 install -U "ipython[all]"
$ sudo pip3 install --upgrade ipykernel
$ sudo pip3 install --upgrade ipython
#(2)生成配置文件
$ jupyter notebook --generate-config
Writing default config to: 
文件/root/.jupyter/jupyter_notebook_config.py
#(3)对应修改其中的值
c.NotebookApp.ip = '0.0.0.0'​​​​​​​
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888 // 开放的端口号
c.NotebookApp.notebook_dir = '/home/pi/' // 可以访问的目录
#(4)设置jupyter notebook的访问密码
$ jupyter notebook password
[NotebookPasswordApp] Wrote hashed password to 
文件/home/pi/.jupyter/jupyter_notebook_config.json
#(5)启动jupyter notebook
$ jupyter notebook

配置c.NotebookApp.ip = ‘10.23.241.202’。

1.3 jupyter notebook魔法命令

Jupyter NoteBook 是功能强大的Python交互IDE,深受数据分析师和算法工程师的热爱。Jupyter NoteBook 在综合使用文字、代码、图片等多种元素展示设计者的想法方面有着美妙的用户体验。而其自带的一些常用Magic Command 可以让它变得更加得心应手。

magic函数主要包含两大类:
一类是行魔法(Line magic)前缀为%。
一类是单元魔法(Cell magic)前缀为%%。
(1)%lsmagic 打印当前可以用的魔法命令。
(2)%lsmagic? 显示魔法命令的说明。
(3)%matplotlib inline
使用matplotlib画图时,图片嵌入在jupyter notebook里面,不以单独窗口显示。

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(10))

(4)%timeit和%%timeit 为代码执行计时

import numpy as np
%timeit np.sin(24)

%%timeit
x=np.sin(20)
np.cos(-x)

(5)%%writefile
后面紧接着一个file_name.py,表示在jupyter notebook里面创建一个py文件,后面cell里面的内容为py文件内容。

%%writefile test_peace.py
import numpy as np
print(np.random.randint(1,5))

在当前路径下会生成一个test_peace.py的文件,内容就是cell里面的内容。
(6)%run
后面紧接着一个相对地址的file_name.py,表示运行一个py文件。

%run test_peace.py

(7)%pwd 查找当前目录
(8)%cd 更改当前目录
(9)%cp 复制文件

%cp test_peace.py test_load.py

(10)%whos 查看当前变量,类型,信息
(11)%load 加载一个文件里面的内容
%load test_peace.py

1.4 基本使用

(1)Files页面
用于管理和创建文件相关的类目。

对于现有的文件,可以通过勾选文件的方式,对选中文件进行复制、重命名、移动、下载、查看、编辑和删除的操作。
(2)Running页面
Running页面主要展示的是当前正在运行当中的终端和“ipynb”格式的笔记本。若想要关闭已经打开的终端和“ipynb”格式的笔记本,仅仅关闭其页面是无法彻底退出程序的,需要在Running页面点击其对应的“Shutdown”。

(3)Markdown生成目录
Jupyter Notebook无法为Markdown文档通过特定语法添加目录,因此需要通过安装扩展jupyter_contrib_nbextensions来实现目录的添加。

启动Jupyter Notebook,导航栏多了“Nbextensions”的类目,点击“Nbextensions”,勾选“Table of Contents ⑵”。

(4)Markdown在文中设置链接并定位
因为Markdown可以完美的兼容html语法,因此这种功能可以通过html语法当中“a标签”的索引用法来实现。
语法格式如下:

[添加链接的正文](#自定义索引词)
<a id=自定义索引词>跳转提示</a>

头尾之间的“跳转提示”是可有可无的。
例如

[点击跳转](#linkyou)

<a id=linkyou>跳转到这里</a>

(5)加载指定网页源代码
在Jupyter Notebook中直接加载指定网站的源代码到笔记本中。
语法格式:

%load URL

其中URL为指定网站的地址。

%load http://www.baidu.com

加载指定网站源代码

(6)加载本地图片

![jupyter](./xxx.png)

1.5 导出pdf并支持中文

nbconvert failed: pdflatex not found on PATH 或者 nbconvert failed: PDF creating failed, captured latex output。查了一些资料后改用命令行,要避免’xelatex’ 不是内部或外部命令,也不是可运行的程序或批处理文件,需要先安装MiKTeX,在其官网https://miktex.org/download下载后,Windows版一路next安装就行。
安装路径D:\Program Files\MiKTeX

(1)ipynb文件编译为tex
在命令行中定位到要转换的jupyter文件的路径下,输入
jupyter nbconvert --to latex yourNotebookName.ipynb
(2)手动编辑latex文件
为了能支持输出中文,需要改一下tex文件,在编辑器(我用的是Notepad++)打开刚才生成的LaTeX文件。
插入下面的内容

\usepackage{fontspec, xunicode, xltxtra}
\setmainfont{Microsoft YaHei}

在这里插入图片描述
(3)转latex为pdf

xelatex yourNotebookName.tex

之前没有运行过xelatex,首次运行会安装一些依赖文件,会慢一些,最后运行完毕.

.ipynb 是我们的jupyter文件
.tex 是由jupyter notebook文件生成的
.pdf 是我们最后的目标文件由.tex文件生成
.log、.out、.aux是LaTex生成pdf的一些输出和日志

1.6 快捷键

删除单元格:连续两次按 “D”

1.7 ipynb转换为py格式

jupyter nbconvert --to script <待转换的 .ipynb 文件的路径>

1.8 代码自动补全

Python的IDE中,有一个很好用的功能,代码自动补全。在Jupyter Notebook中想要代码自动补齐,需要安装Jupyter的插件,然后配置才能实现代码的自动补齐。

首先打开Jupyter Notebook的环境,启动Terminal后,使用PIP命令来安装Jupyter的插件。整个过程需要安装两个插件,并且每次插件安装完成后,都需要激活该插件。如下:

安装nbextensions:
$ pip install jupyter_contrib_nbextensions -i https://pypi.mirrors.ustc.edu.cn/simple
$ jupyter contrib nbextension install --user

安装nbextensions_configurator:

$ pip install --user jupyter_nbextensions_configurator
$ jupyter nbextensions_configurator enable --user

重启jupyter,在弹出的主页面里,能看到增加了一个Nbextensions标签页,在这个页面里,勾选 Hinterland 即启用了代码自动补全。
在这里插入图片描述
在这里插入图片描述

1.9 查看python版本

#jupyter查看python版本
import sys
print(sys.version)

1.10 更换主题

(1)pip install jupyterthemes #安装依赖库
(2)!jt -l  # 查看有哪些主题
Available Themes: 
   chesterish
   grade3
   gruvboxd
   gruvboxl
   monokai
   oceans16
   onedork
   solarizedd
   solarizedl
(3)!jt -t grade3  # 更换主题
或者进行更精细的配置
jt -t grade3 -f fira -fs 13 -cellw 85% -ofs 15 -dfs 15 -T -T
-t 主题 
-f(字体) 
-fs(字体大小) 
-cellw(占屏比或宽度) 
-ofs(输出段的字号) 
-T(显示工具栏) 
-T(显示自己主机名)
更换主题后,关闭jupyter再次启动,主题就会发生变化
(4)!jt -r  # 恢复默认主题

1.11 voila转化ipynb为web

Voila 是一个基于Jupyter的工具,它提供了一种简单的方式将Jupyter笔记本转化为Web应用。它通过隐藏笔记本的代码单元格并呈现笔记本中的输出结果,使用户能够以一种更直观和易用的方式与笔记本进行交互。

pip install voila  # 安装
voila notebook.ipynb  # 运行

2 jupyter lab

2.1 安装启动

CMD>conda activate python36
CMD>pip3 install jupyterlab

Jupyter Lab 被认为是 Jupyter Notebooks 的进一步发展,支持更加灵活和更加强大的项目操作方式,能更改显示主题、安装插件,你也可以编辑 Markdown、CSV 和 JSON 等常用文件格式并实时预览修改所造成的影响,具有更强大的生产力。
CMD>jupyter lab默认打开浏览器
CMD>jupyter lab --no-browser
jupyter lab是基于jupyter notebook的新版本,是包括了Notebook的下一代的有模块化的界面,可以在同一个窗口同时打开好几个notebook或文件(HTML, TXT, Markdown等等),都以标签的形式展示,于是就更像是一个IDE。除了界面上存在差异,使用方式上和notebook没有大的差别。
在这里插入图片描述

2.2 Console

在 Jupyter Lab 中,我希望将代码从编辑器发送到Python控制台以执行,最好使用键盘快捷键。
在这里插入图片描述

2.3 中文设置

pip install jupyterlab-language-pack-zh-CN

重启后settings->Language。

2.4 自动补全

参考Jupyter Lab安装,中文设置,自动补全与代码提示

pip3 install jupyterlab-lsp
pip3 install jedi-language-server 

3 异常及解决

3.1 No module named _sqlite3

ModuleNotFoundError: No module named ‘_sqlite3’
在centos中安装运行jupyter时报错。

在这里插入图片描述
解决方案
首先安装 sqlite-devel
yum install sqlite-devel
重新编译安装Python
#tar -xzvf /root/Python-3.6.6.tgz -C /tmp
#cd /tmp/Python-3.6.6/
#./configure --prefix=/usr/local
#make
#make install
#rm -rf /tmp/Python-3.6.6
重新编译不影响已经安装的包
#jupyter notebook --allow-root --no-browser
#nohup jupyter notebook --allow-root --no-browser &后台运行
在当前目录下查看nohup.out中的链接。

3.2 CommandNotFoundError

在安装好anaconda后第一次新建虚拟环境激活时,出现该错误,详细错误如下所示:
一、错误提示:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.
If using ‘conda activate’ from a batch script, change your
invocation to ‘CALL conda.bat activate’.
在这里插入图片描述
二、解决方法
这个错误提示表明您的命令行环境没有正确配置以使用 conda activate 命令。运行 conda init:根据错误提示,且我这里使用的是cmd,所以使用conda init cmd.exe命令。
之后关闭命令行,重新打开输入激活命令即可。
在这里插入图片描述

3.3 No module named ‘jupyter_server.contents’

解决方式

pip install traitlets==5.9.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

4 指定python版本安装jupyter及插件

4.1 安装过程

一、安装jupyter

CMD>conda activate python311
CMD>pip install jupyter notebook==6.4.12
CMD>pip install ipykernel==6.14.0
CMD>pip install ipython==7.34.0
CMD>pip install traitlets==5.9.0
打开jupyter之后,查看jupyter所用的python版本
import sys
print(sys.version)

二、安装插件

(1)有的时候安装中不成功有残留,先卸载再安装
pip uninstall jupyter_contrib_nbextensions
pip uninstall jupyter_nbextensions_configurator
(2)进入cmd进行安装
pip install jupyter_nbextensions_configurator 
pip install jupyter_contrib_nbextensions
(3)安装完成之后,要进行激活
(3-1)查看包地址
pip show jupyter_contrib_nbextensions
(3-2)进入安装包的目录
cd D:\Anaconda3\envs\python311\Lib\site-packages\jupyter_contrib_nbextensions
# 激活
python application.py install

在这里插入图片描述

4.2 No module named notebook.nbextensions问题

一开始在安装 notebook 中的插件 nbextensions 时根本没有注意到版本的适配问题,都是进行默认的安装,结果安装是最新版本的 notebook=7.x,恰好 notebook=7.x 版本不再适应插件 nbextensions,然后就各种报错。

pip uninstall notebook
pip install notebook==6.4

jupyetr notebook(以下简称 notebook) 7.x版本不再支持,如果还想在 notebook 中使用插件 nbextensions,则需要安装 6.x 版本的插件。

如果在安装 notebook 的时候没有指定版本,那将会默认安装最新版本的 notebook,可以通过 conda install notebook==6.4 来安装指定的版本,6.4 可以换成你需要的指定版本。

4.3 Error loading server extension jupyterlab

这个jupyterlab是在notebook的7.x版本上,如果想使用notebook的6.X版本的扩展包,就无法使用这个功能。

4.4 No module named ‘jupyter_server.contents’

5 参考附录

参考Jupyter notebook使用技巧与JupyterLab
参考Jupyter中显示数据data时只显示省略号不显示完整数据
参考一款将Python Jupyter笔记本代码转化为独立的Web应用的神器:Voila

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐