记录下 jupyter 集成功用。

  1. 装置jupyter

需求运用到 python 中得装置工具 pip,

运用 pip 需求装置 ipython(比python好用,装置下)

这儿还需求装置 phthon

1.1 先到python 官网下载 www.python.org/

jupyter 集成到桌面运用中

下载之后双击装置,直接点下一步装置即可

装置之后装备下环境变量,Path,新建一个,指向装置的python装置途径即可

jupyter 集成到桌面运用中

以上 python 装置完结,

翻开 CMD ,接着装置 ipython

pip install ipython

接下来就能够装置 jupyter 了,我这儿运用的是 jupyter-lab

pip install jupyterlab

装置完结之后,发动jupyter

jupyter-lab

项目能够运转,页面能够看到显式 jupyterlab 内容

这儿想要将 jupyter 经过 iframe 的方法嵌入到咱们的项目中,发现并不可行。

1.找不到jupyter 的装备文件 jupyter_notebook_config.py

履行以下指令,装备文件就出来了

jupyter-notebook --generate-config

jupyter 集成到桌面运用中

能够修正如下装备,值就是咱们默许翻开文件的方位

## 默许翻开文件途径
c.NotebookApp.notebook_dir = 'D:论坛wxedu'

翻开装备文件,在最后边增加如下代码,处理 jupyter 不能经过 iframe 嵌入的问题

## 处理 iframe 嵌入 jupyter 页面报错问题
c.NotebookApp.tornado_settings = { 'headers': { 'Content-Security-Policy': "frame-ancestors 'self' *" } }

jupyter 集成到桌面运用中

现在能够经过 iframe 方法嵌入 jupyter 了,但是发现需求输入 token。

在 jupyter 服务运转的时分,再翻开终端 输入

jupyter lab list

会得到如下图一样的内容

jupyter 集成到桌面运用中

这儿就得到了咱们在网页端需求的 token 了,写在页面里面就能够了

jupyter 集成到桌面运用中

翻开项目,jupyter 现已经过 iframe 方法集成进来了

现在需求做一件事,就是在咱们的运用中履行脚本指令 jupyter-lab 然后发动咱们的 jupyter,再嵌入到咱们的运用中,

首先需求 运用渲染进行于主进程的双向通讯功用:具体官网: www.electronjs.org/zh/docs/lat…

我的项目中:

先封装了个node 双向通讯的类办法,

这儿需求回来一个办法,需求有回来值然后去履行

jupyter 集成到桌面运用中

然后在主进程进行注册运用

jupyter 集成到桌面运用中

然后在 preload 预加载文件中写办法,然后调用咱们写的node 履行指令办法

jupyter 集成到桌面运用中

然后在 render 中运用就能够了

jupyter 集成到桌面运用中

上面没有直接在 preload 中直接运用 node 的 exec 办法,而是封装了一下,由于在 preload 中把node隔离了,用不了 node 所露出出来的功用。

进入正题:咱们做的是一个桌面运用,要把jupyter环境放到咱们的运用中,不运用 用户自己电脑上的jupyter,把jupyter 文件放到咱们的项目中。这儿需求运维给你脚本,咱们经过前端履行脚本指令,拿到jupyter履行之后启用jupyter的衔接地址就能够了,记住是带有 token 的,和运维交流好。

jupyter 集成到桌面运用中

这儿履行脚本带了两个参数,第一个参数是发动jupyter之后翻开项目的地址,第二个参数是jupyter的装备文件地址。

上面一个办法是在js中经过通讯方法获取文件的途径地址。(懂得都懂)

本地启用electron项目,然后经过iframe的方法显式咱们的jupyter。

jupyter 集成到桌面运用中

这儿遇到一个问题就是显现不了 jupyter,如图咱们能够看到衔接地址咱们现已拿到了,但是放在页面中无法显现。

这个时分就需求装备jupyter的装备文件,加上一条如下装备就能够了

c.ServerApp.tornado_settings = { 'headers': { 'Content-Security-Policy': "frame-ancestors * self notebooks.originqc.com.cn qcloud4test.originqc.com notebooks.originqc.com.cn"}}

本地jupyter的确让我调了很久,很崩溃,主要是不明白,可能后边再做相似的就好多了吧。

虽然问题没有很多个,但是在探索过程中也是花了不少的时间,主要是交流需求很多。再接再厉,后边处理相似的问题应该就有信心了。

等咱们的运用上架之后,我会贴出来咱们的项目地址,欢迎大家下载运用。