快速搭建Jupyter notebook远程访问

W35周两天时间, 终于将阿里服务器上的东西搬到了腾讯云。顺便记录下搬运Jupyterlab/notebook挖的坑。

Jupyterlab是 jupyter notebook 后继版本, 有做比较多的扩展。

https://zhuanlan.zhihu.com/p/38612108

配置Python环境

安装Python Venv

使用python配置环境, 最容易的就是venv了, 所以我们就可以建立jupyter的用户,然后直接创建venv就可以了。创建venv,就相当于单独创建了一个python3环境, 不会跟系统的python发生冲突(尤其对于版本有需求的特别友好)。

python3 -m venv /path/of/venv

Ubuntu下可以直接source, windows 则直接activate即可

source /path/to/venv/bin/activate

相对应的,如果取消当前venv环境

deactivate

安装Jupyterlab

安装jupyterlab前, 需要先确认pip3有没有安装, 如果没有安装就可以先安装pip3

sudo apt-get install python3-pip

确认下版本, 如需要更新, 执行下面命令

python3 -m pip install --upgrade pip

建议配置pip 国内软件源,体验非一般的赶脚。

Pipe3 源更新

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装Jupyter

pip3 install jupyter

安装完成后, 可以简单测试

jupyter notebook

然后确保内容是否正确。

生成Jupyter密码

    1. 生成默认配置
    2. 设置访问密码
    3. 配置文件修改
#jupyter notebook --generate-config
#~/.jupyter/jupyter_notebook_config.py

生成密码需要用到notebook.auth的passwd函数,进入IPython,然后调用passwd函数。将输出内容贴到配置文件即可。

In [1]: from notebook.auth import passwd 
In [2]: passwd() Enter password: Verify password: 
Out[2]: 'xxxxxxxxxxxxxxxxx'

Jupyter Conf配置

主要配置信息

c.NotebookApp.ip='*' 
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文' 
c.NotebookApp.open_browser = False 
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote = true # 远程访问务必配置的信息,否则外网无法访问
c.NotebookApp.keyfile = '/............/cert.key'
c.NotebookApp.certfile = '/.........../cert.pem'

如果需要配置SSL, 则需要额外配置keyfile/certfile两项。

配置完成后, 可以执行notebook 确认是否运行正常

jupyter notebook

服务配置

[Unit]
Description=jupyter service
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
PIDFile=/run/jupyter.pid
User=jupyter_user_name
ExecStart=/bin/bash -c "source /path/to/venv/bin/activate && jupyter lab"
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

保存为jupyter.service,然后放到/etc/systemd/system/jupyter.service.透过systemd enable jupyter, 并启动

sudo systemctl daemon-reload
sudo systemctl enable jupyter
sudo systemctl start jupyter
sudo systemctl status jupyter //查看jupyter 启动信息

如需要安装jupyter lab插件, 则需要安装nodejs

因为ubuntu 18.04 上预装的nodejs版本过低, 可以直接从源码构建并安装

wget 获取到node.js源码包,然后编译并安装

sudo ./configure
sudo make
sudo make install

体验jupyterlab的强大!

 

 

 

 

 

 

下一章节

  1. Nginx 反向代理
标签:,

About: kiah


发表评论

电子邮件地址不会被公开。