Jupyter远程开发RDK X3,Jupyter安装与端口映射

Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。

本文将您介绍在同一个局域网环境下,在X3上安装Jupyter,在开发机(另一台Windows电脑)上打开Jupyter网页对X3进行开发,打开多个Jupyter、Jupyter个性化设置的方法。

RDK X3的USB摄像头和mipi摄像头采集的照片也可以直接利用Jupyter显示在您电脑的浏览器上:

有了Jupyter以后,您可以更加方便的调试您的代码:

  • Jupyter远程开发RDK X3,逐句运行官方YOLO v5s 2.0的推理!(写作中)

一、安装

1.1 在X3上安装Jupyter

 pip3 install jupyter -i https://mirrors.aliyun.com/pypi/simple

1.2 在X3中配置Jupyter环境变量

在管理员权限下打开文件

 sudo vim ~/.bashrc

多次使用shift + ↓跳转到最后一行,添加如下内容:

 export PATH=~/.local/bin:${PATH}

按ESC键退出编辑模式,:wq!保存退出,使用以下指令激活生效

 source ~/.bashrc

1.3 设置Jupyter启动密码,用于后续登陆

 jupyter notebook password

其中会输入密码并确认密码,输入密码的过程没有任何提示,输入完毕后回车即可,命令运行效果如下:

 sunrise@ubuntu:~/jupyter$ jupyter notebook password
 Enter password:
 Verify password:
 [JupyterPasswordApp] Wrote hashed password to /home/sunrise/.jupyter/jupyter_server_config.json
 sunrise@ubuntu:~/jupyter$

二、启动Jupyter

2.1 在Desktop上新建Jupyter工作目录

或者进入自己的工作目录

 cd ~
 mkdir jupyter
 cd jupyter

2.2 启动Jupyter

 jupyter notebook --no-browser --port=8889 --allow-root

其中:

  • --no-browser表示:阻止在浏览器中打开默认url。
  • --port=8889 表示:在X3本地的8889号端口开启Jupyter入口。
  • --allow-root表示:允许从root用户运行服务器。

2.3 开发机的CMD中SSH连接(映射一下)

 ssh -N -f -L localhost:8836:localhost:8889 sunrise@192.168.xxx.xxx

其中:

  • -N 表示: ssh 没有命令要被远程执行
  • -f表示:命令在后台执行
  • -L表示:进行端口配置
  • localhost:8836:localhost:8889表示:远程端口是 8889, 本机端口是 8836
  • sunrise@192.168.xxx.xxx表示:将sunrise账户的Jupyter端口映射到Windows开发机,X3在局域网中的IP地址为192.168.xxx.xxx

特别的:

该条命令执行后输入sunrise账户密码后,没有任何打印输出,该窗口处于运行状态,直接进行下一步:在本地电脑浏览器打开以下网址。

2.4 在本地电脑浏览器打开以下网址

 localhost:8836

接下来就可以在开发机中愉快的使用Jupyter了,此时Jupyter使用的是X3默认的Python解释器,开发板Ubuntu系统的Python解释器预装了Python版本的hobot_vio图像多媒体库、pyeasy_dnn模型推理模块等库,如果导入这些模块时出错,请确认您的Jupyter是安装在官方镜像默认的Python解释器下,或者检查您安装的Jupyter的pypi环境或conda环境有安装地平线的模块。

2.5 打开多个Jupyter

如果需要打开多个项目文件夹,则只需要重复上述步骤,更改X3的Jupyter访问端口和本地的映射端口即可。

例如开启X3的8890端口,Windows开发机映射到8837端口。

 jupyter notebook --no-browser --port=8890 --allow-root
 ssh -N -f -L localhost:8837:localhost:8890 sunrise@192.168.1.105
 localhost:8837

打开两个Jupyter效果如下图所示,打开多个Jupyter的方法也类似,若端口被占用可换更大的数字,一般为1024 ~ 49151。

2.6 体验Jupyter开发

新建一个Notebook文件,可以点击运行该行Python语句,同时可以在首页查看项目文件夹下的其他文本、图像等等文件。

编写ipynb交互式Python,hobot_dnn等模块在Jupyter中也是可以使用的。

查看项目文件夹下的图片

2.7 结束Jupyter进程

若要结束掉Jupyter进程,在终端中同时按下 Ctrl + C 按键,程序会二次确认,输入 y 并回车退出。

^C[I 2023-10-07 13:17:56.310 ServerApp] interrupted
[I 2023-10-07 13:17:56.311 ServerApp] Serving notebooks from local directory: /home/sunrise/jupyter
    0 active kernels
    Jupyter Server 2.7.3 is running at:
    http://localhost:8889/tree?token=6f40621843c0ab18f47a3578fc22d365fc1e5f478f5dbed1
        http://127.0.0.1:8889/tree?token=6f40621843c0ab18f47a3578fc22d365fc1e5f478f5dbed1
Shutdown this Jupyter server (y/[n])? y
[C 2023-10-07 13:17:59.688 ServerApp] Shutdown confirmed
[I 2023-10-07 13:17:59.690 ServerApp] Shutting down 5 extensions
sunrise@ubuntu:~/jupyter$

三、Jupyter 个性化设置

3.1 切换Jupyter主题

Jupyter上方选择 Settings -- Theme -- JupyterLab Dark 即可切换暗色主题,也可调整代码部分,正文部分和UI的大小。

另外,大小可通过 Ctrl + 滚轮 缩放浏览器界面控制。

3.2 Jupyter 格式化代码

安装 nbextensions

# 安装
pip3 install nb-black -i https://mirrors.aliyun.com/pypi/simple
# 在第一行中加入魔术命令
%load_ext nb_black

四、参考

[1] Jupyter Notebook 问题解决之:当服务器上的 jupyter notebook 不能在本地的浏览器上显示界面,该如何破局?_为什么jupyter本地和网页版结果不同_暖仔会飞的博客-CSDN博客

[2]如何使用jupyter notebook 及其Linux服务器远程开启_linux启动jupyter notebook的命令是什么-CSDN博客