欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jupyter notebook的使用和一些设置

程序员文章站 2022-06-01 09:53:29
...

0. notebook生成配置

运行下面的命令会在用户目录下生成一个配置文件~/.jupyter/jupyter_notebook_config.py

jupyter notebook --generate-config

如果是root用户执行的,则会有下面的提示:

Running as root it not recommended. Use --allow-root to bypass.

这时候应该加上--allow-config执行:

jupyter notebook --generate-config --allow-config

然后生成密码运行下面的命令:

jupyter notebook password

此命令会生成一个文件~/.jupyter/jupyter_notebook_config.json,里面存的是加密之后的密码。
生成配置文件之后,如果想要配置一些常用的功能,直接修改配置文件即可,官方文档参考:notebook文档

1.notebook常用配置

c.NotebookApp.ip = '*'  # 允许所有ip访问
c.NotebookApp.port = 9123  # 设置服务端口
c.NotebookApp.open_browser = False  # 设置服务启动的时候是否自动打开浏览器
c.NotebookApp.token = ""  # 用于验证与服务器的首次连接,设置为空相当于取消验证(这种方式需要同时删除jupyter_notebook_config.json)。
c.NotebookApp.terminals_enabled = False  # 禁止使用终端
c.NotebookApp.allow_password_change = False  # 禁止修改密码
c.NotebookApp.quit_button = False  # 禁用页面中的Quit按钮
c.NotebookApp.certfile = u'~t/.jupyter/mycert.pem'  # https**位置
c.NotebookApp.notebook_dir = "~/notebook_work_dir/"  # 打开首页时的工作路径

2. notebook iframe跨域访问

这个单独拿出来说一下,如果想要把notebook嵌入到其他页面中,供用户使用,可以在配置文件中设置以下值(旧版本是webapp_settings):

c.NotebookApp.tornado_settings = {
      'headers': {
            'Content-Security-Policy': "frame-ancestors self *; report-uri /api/security/csp-report",
      }
}

不设置的话请求会被禁止。

3. notebook设置不跳转

如果我们把notebook作为一个功能模块嵌入到自己的网站中,在操作总肯定不会希望会打开新的标签,有如下解决方式。
在项目源代码中全局搜索Jupyter._target你会发现大概有六个地方js代码(对应每个模块)的配置是这样的:

Jupyter._target=_blank

这个设置将页面中的a标签的target值强制转为了_blank,我们把这几个地方的源码改成下面这样:

Jupyter._target=_self

就解决了。

4. notebook小部件

pip install ipywidgets  # 安装模块
pip install widgetsnbextension  # 安装模块
jupyter nbextension enable --py widgetsnbextension  # 开启扩展

5.notebook输出

转换为html:

jupyter nbconvert --to html notebook.ipynb  # 转为html文件

创建幻灯片:

jupyter nbconvert notebook.ipynb --to slides  # 将 notebook 转换为幻灯片必需的文件,需要向其提供 HTTP 服务器才能真正看到演示文稿
jupyter nbconvert notebook.ipynb --to slides --post serve  # 转换它并立即看到它

参考:https://blog.csdn.net/jjwho/article/details/78765352
参考:https://www.cnblogs.com/wu-chao/p/8419889.html
参考:https://www.cnblogs.com/Neo007/p/7501625.html