Jupyter

我最近想搭个 Jupyter Lab, 主要出于这几个原因:

  1. 调试 Windkessel 模型:需要一个方便画图、能轻松分享结果的环境(受够了在本地画完图还要到处传文件😂)
  2. 学习 Pyvista 可视化:想在网页上直接展示计算结果,pyvista 的 3D 可视化效果很酷炫,以后通过代码可重复画图
  3. 学习 FEniCSx :正在学这个有限元分析工具,Jupyter 的交互特性很适合边学边试

安装 Jupyter 和 pyvista

1
2
3
4
pip install 'jupyterlab>=3' ipywidgets 'pyvista[all,trame]'
pip install notebook
jupyter notebook password
jupyter notebook --port=9202 --ip=0.0.0.0

然后设置外网访问12, 需要注意, 在 Nginx Proxy Manager 打开 Websocket Support 才能执行代码,否则只能写代码。 image-20250518173009001

运行pyvista

可以选择前端显示或者后端显示。

image-20250518113614370

Jupyter执行环境切换

1
python -m venv circadapt
1
2
3
4
# 假设已经激活 python 环境
pip3 install ipykernel
python -m ipykernel install --user --name=spack_fenics --display-name="FEniCSx Spack"
jupyter kernelspec uninstall fenics_spack

系统默认启动

我通过ssh登陆命令执行脚本,尽可能与命令行执行命令的环境相同

1
2
3
4
5
6
sudo vi /etc/systemd/system/manyservices.service
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
sudo systemctl enable manyservices.service 
# sudo systemctl daemon-reload
sudo systemctl restart manyservices.service 
sudo journalctl -u manyservices.service -n 100
1
ssh fenics@localhost "export DISPLAY=:99.0 && source ~/pyvenv/bin/activate && jupyter notebook --port=9202 --ip=0.0.0.0 --notebook-dir=/home/fenics/jupyter"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[Unit]
Description=many services
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
# 指定运行用户和组
User=fenics
Group=fenics
# 启动命令
Restart=on-failure    
RestartSec=5s
ExecStart=/bin/bash /home/fenics/start_services.sh

[Install]
WantedBy=multi-user.target
版权所有,禁止转载
访问次数 :加载中...