如何在Centos7.9上快速部署一套自己的JupyterLab

为什么要搭建一个在线的JupyterLab?

        因为近期在研究AI大模型,在研究AI大模型的过程中,免不了要经常使用Python,而我有多台电脑,就需要在每台电脑上都安装Python环境和IDE,真心觉得很不方便,编写的文档也还得同步,所以不如搭建一个在线的JupyterLab来得更灵活!

https://lab.jiguiquan.com/

一、检查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就可以使用域名访问啦!

https://lab.jiguiquan.com/


四、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()

1710486518948789.png

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()

1710486575476076.png

非常地方便!

最后思考下,JupyterLab这块产品为什么叫Lab(实验室)?与之前的Jupyter Notebook有什么区别?

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐