简介
记录笔者在配置和使用Jupyter过程中遇到的情况,内容持续更新~
一、Jupyter的基本使用
二、使用过程中遇到的场景
场景1:在Linux服务器上部署远程Jupyter
基础环境:CentOS 7.6 64bit
、miniconda3
、Python3.8
操作步骤:
-
安装Jupyter
先进入conda环境,使用如下命令激活需要安装Jupyter的虚拟环境
conda activate test_env
使用如下命令安装jupyter
conda install jupyter notebook
-
生成Jupyter配置文件
jupyter notebook --generate-config
这个命令会自动生成Jupyter配置文件jupyter_notebook_config.py
到特定文件夹下,一般在/root/.jupyter
,可以根据提示自行查找,稍后的配置就在这个里面进行
-
自动设置登录验证密码
输入如下命令,会提示设置密码。
jupyter notebook password
密码设置成功后会自动生成jupyter_notebook_config.json
文件,和上一步生成的jupyter_notebook_config.py
在同一文件夹下,里面存放了密码的哈希码,大概长下面这样。
{
"NotebookApp": {
"password": "argon2:$argon2idxxxhuelnqwblqwbqwlnqwlyqwblnwqjlxaibqwhbqwlwqnq"
}
}
此处注意,.json
配置文件的优先级高于.py
文件,因此如果Json文件中已经配置了密码,py中的密码会无效(但是没关系,为了确保万一,我们两个都配一下)
-
手动配置Jupyter
接下来就是手动修改Jupyter配置文件了,从上到下依次是:
- 允许远程访问:改为True允许
- ip:改为0.0.0.0默认ip
- 允许修改密码:改为False不允许
- 打开浏览器:改为False不打开
- 密码:把json配置文件中的哈希密码复制进来,记得字符串前面加个
u
- 需要密码:改为True需要
- 端口:设置为8888默认端口,也可以自定义
c.NotebookApp.allow_remote_access = True
c.NotebookApp.allow_root = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'argon2:$argon2idxxxhuelnqwblqwbqwlnqwlyqwblnwqjlxaibqwhbqwlwqnq'
c.NotebookApp.password_required = True
c.NotebookApp.port = 8888
-
打开防火墙
默认访问地址是:http://ip:8888
,在访问前需要打开服务器的8888
端口
-
测试环境是否可用
在浏览器输入访问地址http://ip:8888
,页面会跳转到登录验证界面,输入设置的密码,查看是否可以顺利访问
![image-20230514134259132](/i/l/?n=23&i=blog/2732482/202305/2732482-20230514142404033-1576473548.png)
登录后,顺利进入目标文件夹
![image-20230514134420749](/i/l/?n=23&i=blog/2732482/202305/2732482-20230514142501333-1864820243.png)
-
后台运行Jupyter程序
虽然基本的配置都搞好了,但是关闭xshell
后,程序会自动关闭,为达到远程访问的目的,可以使用nohup
命令(记得在你想打开的文件夹下运行)
nohup jupyter notebook &
补充一点,服务打开了怎么关呢?
可以通过杀死进程的方式来关闭服务,先查看jupyter
进程,找到 jupyter notebook的pid
ps -aux | grep jupyter
然后执行kill
命令杀死进程
kill -9 test_pid
更新于2023年5月14日