为什么要搭建一个在线的JupyterLab?
因为近期在研究AI大模型,在研究AI大模型的过程中,免不了要经常使用Python,而我有多台电脑,就需要在每台电脑上都安装Python环境和IDE,真心觉得很不方便,编写的文档也还得同步,所以不如搭建一个在线的JupyterLab来得更灵活!
一、检查Python环境
1、检查当前Python版本:
pythn -V
如果没有安装,或者不是Python3,则进行安装,我选择的是 pyenv 版本管理工具安装,也为了方便以后快速地切换python环境;
2、安装 pyenv 版本管理工具:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init --path)"' >> ~/.bashrc source ~/.bashrc
3、查看可安装的python版本,我选择安装的是3.9.9:
pyenv install --list pyenv install 3.9.0 pyenv global 3.9.0
二、安装JupyterLab
1、使用pip直接安装最新版的JupyterLab:
pip -V pip install jupyterlab
2、运行JupyterLab:
# 默认终端运行 jupyter lab ## 指定端口运行(allow-root是因为jupyterLab很不建议使用root账户直接运行,因为权限太大) jupyterlab --port 8686 --allow-root ### 后台运行,并指定日志输出路径 nohup jupyter lab --port 8686 --allow-root > jupyterlab.log 2>&1 &
如果在运行过程中,出现了类似于以下的报错:
ImportError: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168
问题是出现在 urllib3 模块与 OpenSSL 版本之间的兼容性上,我们可以选择升级OpenSSL,或者降级urllib3 版本,我个人觉得降级urllib3 版本影响面更小一点:
pip install urllib3==1.*
3、对JupyterLab做一点核心配置(允许远程访问):
考虑到,我们是想将JupyterLab部署在服务器上,而后通过域名的方式远程访问JupyterLab的,而JupyterLab默认只允许本地进行访问的,所以我们需要让其支持远程访问:
生成配置文件:
jupyter lab --generate-config # 此配置文件通常在用户目录下的:~/.jupyter/jupyter_lab_config.py
修改其中的一个重要配置项:
c.ServerApp.allow_remote_access = True
4、重启JupyterLab,使配置生效:
ps -ef|grep jupyter kill -9 ${pid} # 再次启动 nohup jupyter lab --port 8686 --allow-root > jupyterlab.log 2>&1 &
三、通过Nginx反向代理让我们可以以域名的方式访问JupyterLab
1、DNS解析:
略!
2、Nginx核心配置:
location / { proxy_pass http://localhost:8686; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
重点注意其中的关于websocket的配置项(kernel长连接)!
之后我们的JupyterLab就可以使用域名访问啦!
四、JupyterLab的简单使用
1、通过插件对JupyterLab进行汉化:
!pip install jupyterlab-language-pack-zh-CN
2、安装自动补全插件:
!pip install jupyter-lsp
也可以使用插件管理器PYPI进行安装,第一次使用时,会提醒激活此功能!
3、练习:简单使用matplotlib画几张数据库表吧:
安装matplotlib库:
pip install matplotlib
3.1、画一张正弦图:
import numpy as np import matplotlib.pyplot as plt # 设置图形在Notebook中显示 %matplotlib inline # 生成x轴数据 x = np.linspace(0, 2*np.pi, 100) # 生成y轴数据,即正弦函数 y = np.sin(x) # 绘制正弦函数 plt.plot(x, y) plt.xlabel('x') plt.ylabel('sin(x)') plt.title('Sine Function') plt.grid(True) plt.show()
3.2、画一张柱状图:
import matplotlib.pyplot as plt # 设置图形在Notebook中显示 %matplotlib inline # 数据 categories = ['A', 'B', 'C', 'D', 'E'] values = [5, 10, 15, 20, 25] # 绘制柱状图 plt.bar(categories, values, color='skyblue') # 添加标签和标题 plt.xlabel('Categories') plt.ylabel('Values') plt.title('Bar Chart Example') # 显示网格线 plt.grid(True) # 显示图形 plt.show()
非常地方便!
最后思考下,JupyterLab这块产品为什么叫Lab(实验室)?与之前的Jupyter Notebook有什么区别?