跳转至

基于centos安装jupyterlab设置外网访问

安装

默认已经装好了python以及pip

pip install 'jupyterlab>=2,<2.1.0a0'

生成密码

如果不想设置密码可以跳过此步

设置密码成功之后会返回加密后的 sha1 字符串

ipython  进入交互python环境

>>> from notebook.auth import passwd
>>> passwd()

生成配置文件

默认生成了 /root/.jupyter/jupyter_notebook_config.py

jupyter lab --generate-config

修改配置文件

在最底部新增如下配置

# 将ip设置为*,意味允许任何IP访问
c.NotebookApp.ip = '*'
# 这里的密码就是上边我们生成的那一串
c.NotebookApp.password = u'sha1:xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# 服务器上并没有浏览器可以供Jupyter打开
c.NotebookApp.open_browser = False
# 监听端口设置为8888或其他自己喜欢的端口
c.NotebookApp.port = 8848
# 我们可以修改jupyter的工作目录,也可以保持原样不变,如果修改的话,要保证这一目录已存在
c.MappingKernelManager.root_dir = '/root/jupyter_codes'
# 允许远程访问
c.NotebookApp.allow_remote_access = True

# 也不知道有什么用,看别人设置了 咱也设置吧
c.PAMAuthenticator.encoding = 'utf8'
c.NotebookApp.notebook_dir = '/root/jupyter_codes'
c.NotebookApp.port_retries = 50

设置Nginx反向代理

nginx配置文件如下

server {
    server_name run.152.69.196.199 47.103.193.253; # 服务器域名和 IP 地址
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:8848/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # jupyter 使用了 websocket 协议,所以需要配置支持 websocket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 120s;
        proxy_next_upstream error;

        proxy_redirect off;
    }
}

设置启动文件

#/bin/bash

cd /root/jupyter_codes && nohup jupyter lab --allow-root > /dev/null 2>&1 &

安装node和npm

本屌用了宝塔应用程序里面的一键安装

支持TypeScript

npm install -g tslab

tslab install --version

tslab install [--python=python3]

tslab install

jupyter kernelspec list
  # jslab      /usr/local/google/home/yunabe/.local/share/jupyter/kernels/jslab
  # tslab      /usr/local/google/home/yunabe/.local/share/jupyter/kernels/tslab

设置Py语法提示

  1. 控制台 ps aux | grep jupyter 查看pid 关掉juypyter相关进程
  2. pip install jupyter-lsp
  3. sudo yum install nodejs
  4. 运行jupyter labextension install @krassowski/jupyterlab-lsp大概持续几分钟(中间服务器其他连接会异常)
  5. pip install python-language-server[all]
  6. 启动jupyter

TypeScript代码提示(装了还不如本身自带的)

具体比较复杂,这里只做参考 https://jupyterlab-lsp.readthedocs.io/en/latest/Configuring.html#autodetect

  1. 安装相应的js/ts代码提示服务器npm install --save-dev javascript-typescript-langserver