在 Ubuntu Server 上安装 JupyterHub,随时随地在网页上写代码
在 Ubuntu Server 上安装 JupyterHub,随时随地在网页上写代码
叁零零肆零肆

在 Ubuntu Server 上安装 JupyterHub,随时随地在网页上写代码

admin
2023-10-19 / 0 评论 / 17 阅读 / 正在检测是否收录...

写代码往往要用到 IDE,而且还要配置环境,都是挺烦人的事情。如果你有一台可以远程访问的电脑,或者服务器,那么就可以配置好环境,之后远程敲代码,这其中做的最彻底的便是 Jupyter。

在本案例中,我们将在一台装有 Ubuntu Server 系统的电脑上配置 JupyterHub 环境,如果你的系统是其他发行版,操作可能会有略微差别。

一、安装更新和依赖
 # 安装更新
sudo apt update
sudo apt upgrade

# 安装 JupyterHub 所需依赖
sudo apt install python3-pip python3-dev npm nodejs
二、安装 JupyterHub
 # 使用 pip 安装 JupyterHub
sudo pip3 install jupyterhub
接下来要安装 Jupyter notebook server,你可以选择传统的 Jupyter Notebook,也可以选择安装功能更现代化的 JupyterLab,这里我们选择后者。

# 安装 JupyterLab
sudo pip3 install jupyterlab

# 安装 Jupyter Notebook
sudo pip3 install notebook 
三、配置 JupyterHub
要让 JupyterHub 正常运行,得先生成一个配置文件。

 sudo jupyterhub --generate-config -f 配置文件路径/jupyterhub_config.py 
之后你可以编辑配置文件来修改配置,没有特别要求的话使用默认配置即可。

 sudo vim 配置文件路径/jupyterhub_config.py
四、创建服务
你也不想每次要写代码的时候还得手动启动服务吧?我们可以创建一个 JupyterHub 服务,然后让它自启动。

 # 创建 /etc/systemd/system/jupyterhub.service 文件
sudo vim /etc/systemd/system/jupyterhub.service

# 按 i 进入编辑模式,贴入以下内容
[Unit]
Description=JupyterHub
After=network.target

[Service]
User=root
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/local/bin/jupyterhub -f 配置文件路径/jupyterhub_config.py

[Install]
WantedBy=multi-user.target

# 按 Esc 退出编辑,输入 :wq 按回车保存文件 
启动服务,并设置为开机自启动:

sudo systemctl start jupyterhub
sudo systemctl enable jupyterhub
此时可以在浏览器打开 http://<服务器IP>:8000 看看能否正常访问。

五、排除故障
如果访问不了,先排查下服务器防火墙是否放行 8000 端口。接着检查 JupyterHub 服务的运行状态:

 sudo systemctl status jupyterhub
例如以下状态就说明出现错误导致服务未能正常启动:

● jupyterhub.service - JupyterHub
     Loaded: loaded (/etc/systemd/system/jupyterhub.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2023-07-05 11:21:15 CST; 6s ago
    Process: 639721 ExecStart=/usr/local/bin/jupyterhub -f /home/louis/Projects/JupyterHub/jupyterhub_config.py (code=e>
   Main PID: 639721 (code=exited, status=1/FAILURE)

Jul 05 11:21:15 s400 jupyterhub[639721]:       File "/usr/local/lib/python3.8/dist-packages/jupyterhub/proxy.py", line >
Jul 05 11:21:15 s400 jupyterhub[639721]:         self.proxy_process = Popen(
Jul 05 11:21:15 s400 jupyterhub[639721]:       File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
Jul 05 11:21:15 s400 jupyterhub[639721]:         self._execute_child(args, executable, preexec_fn, close_fds,
Jul 05 11:21:15 s400 jupyterhub[639721]:       File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
Jul 05 11:21:15 s400 jupyterhub[639721]:         raise child_exception_type(errno_num, err_msg, err_filename)
Jul 05 11:21:15 s400 jupyterhub[639721]:     FileNotFoundError: [Errno 2] No such file or directory: 'configurable-http>
Jul 05 11:21:15 s400 jupyterhub[639721]:
Jul 05 11:21:15 s400 systemd[1]: jupyterhub.service: Main process exited, code=exited, status=1/FAILURE
Jul 05 11:21:15 s400 systemd[1]: jupyterhub.service: Failed with result 'exit-code'.
从报错信息可以看到,问题出在缺少 configurable-http-proxy 这个文件,configurable-http-proxy 是一个包,可以用以下命令安装:

 sudo npm install -g configurable-http-proxy 
之后重启 JupyterHub 服务即可解决。

 sudo systemctl restart jupyterhub
六、登录 JupyterLab
在浏览器上访问 JupyterLab,用户名和密码就是你的 Linux 用户名和密码。

JupyterLab
0

评论 (0)

取消