本文主要是介绍『Linux笔记』服务器搭建神器JupyterLab,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
服务器搭建神器JupyterLab! |
文章目录
- 1. 重点步骤
- 1.1. 安装JupyterLab
- 1.2. 修改JupyterLab配置文件
- 2. 后台运行
- 2.1. nohup
- 2.2. linux对nohup日志进行定时拆分并且删除
- 3. 终止进程
- 4. jupyter lab快速格式化代码PEP8规范化
- 推荐博客: 云服务器搭建神器JupyterLab(多图)。记得用
nohup
命令设置一下后台运行。- 推荐博客: Jupyter lab 安装及多kernel配置
- 推荐博客:在Anaconda安装多个环境,如果想在每个环境下都可以使用jupyterlab,需要挨个安装一遍吗?
- 查看解释器的所在路径:
1. 重点步骤
1.1. 安装JupyterLab
- 安装
pip install jupyterlab
- 生成密码
jupyter-notebook password
- 创建哈希密码
ipython
from notebook.auth import passwd
passwd()
# 输入你自己设置登录JupyterLab界面的密码,
# 然后就会生产下面这样的密码,将它记下来,待会儿用
'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'
1.2. 修改JupyterLab配置文件
- 先生成一个配置文件,记下输出的配置文件地址
jupyter lab --generate-config
- 修改配置文件,找到下面这几行文件,注释掉并修改成这样。
c.NotebookApp.allow_root = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.notebook_dir = u'/data/aibox/kaifang'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'
c.NotebookApp.port = 8888
- 对应每行稍微解释一下
允许以root方式运行jupyterlab
允许任意ip段访问
设置jupyterlab页面的根目录
默认运行时不启动浏览器,因为服务器默认只有终端嘛
设置之前生产的哈希密码
设置访问端口
2. 后台运行
2.1. nohup
- 在云服务器中搭建好
jupyter lab
并运行后,发现它会占用当前终端,于是研究了一下怎么让它在后台运行。
- 1. 入门级
jupyter lab --allow-root > jupyter.log 2>&1 &
- 2. 进阶版
nohup jupyter lab --allow-root > jupyter.log 2>&1 &
nohup jupyter lab --port='9999' --ip='*' --notebook-dir='/data/aibox/kaifang' --allow-root > tf.log 2>&1 &
- 命令解释:
- 用
&
让命令 后台运行,并把标准输出写入jupyter.log
中。但当用户推出(挂起)的时候,命令自动也跟着退出nohup
表示no hang up
, 不挂断的运行, 注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。- 可以参考一下这个博客的讲解:后台任务与nohup命令
- 使用&后台运行程序:
- 1)结果会输出到终端
- 2)使用Ctrl + C发送SIGINT信号,程序免疫
- 3)关闭session发送SIGHUP信号,程序关闭
- 使用nohup运行程序:
- 1)结果默认会输出到nohup.out
- 2)使用Ctrl + C发送SIGINT信号,程序关闭
- 3)关闭session发送SIGHUP信号,程序免疫
- 平时线上经常使用
nohup和&
配合来启动程序: 同时免疫SIGINT和SIGHUP信号
- 详解Linux中nohup和&的用法和区别https://zhuanlan.zhihu.com/p/258326013
- Shell 重定向 2>&1 含义说明
- 因为 [ find /etc -names “*.txt” ] 这条命令是错误的( -names 应该是 -name)。
- 从左往右执行,执行到 >list,此时的 stdout 为 list;而执行到 2>&1,表示 stderr 重定向到 stdout,这里也就是 list 文件。
- 推荐博客:Linux shell中2>&1的含义解释(全网最全,看完就懂):https://blog.csdn.net/zhaominpro/article/details/82630528
2.2. linux对nohup日志进行定时拆分并且删除
- 我们通过定时备份nohup文件按照日期来保存日志信息,然后在把nohup文件清空,来实现记录当天的数据.
- 参考链接:https://blog.51cto.com/u_15585699/5192075
- linux crontab 定时任务详解: https://www.cnblogs.com/yahuian/p/linux-crontab.html
- 此时借助在线的 https://crontab.guru/ 工具:https://crontab.guru/
- linux 定时任务 crontab服务启动停止重启:https://www.jb51.cc/linux/3859407.html
3. 终止进程
- 推荐博客:nohup和&后台运行,进程查看及终止
- 执行上面第2条命令,可以发现关闭终端重新打开后,用
jobs
找不到jupyter
这个进程了, 于是要用ps -a
,可以显示这个进程的pid
。
kill -9 pid 终止进程# 查看端口使用情况,使用netstat命令。查看已经连接的服务端口(ESTABLISHED
netstat -a
# 查看所有的服务端口(LISTEN,ESTABLISHED)
netstat -ap
# 查看8080端口,则可以结合grep命令:
netstat -ap | grep 8080#v如查看8888端口,则在终端中输入:
lsof -i:8888
4. jupyter lab快速格式化代码PEP8规范化
pip install jupyterlab_code_formatter
- 1. 如果你的jupyter lab版本小于3.0.0 还需要执行以下代码
jupyter serverextension enable --py jupyterlab_code_formatter
jupyter labextension install @ryantam626/jupyterlab_code_formatter
- 2. 安装支持的代码格式化程序
pip install autopep8 isort
- 3. 重启 Jupyterlab
- 4. 配置插件
- 1. 按照“Settings” > “Advanced Settings Editor” > “Jupyterlab Code Formatter”,在右侧的 “User Preferences” 中输入一下内容
{"preferences": {"default_formatter": {"python": "autopep8","R": "styler"}}
}
- 2. 设置快捷键:不设置快捷键需要右键单击代码块然后选择Format cell进行格式化 比较麻烦,Advanced Setting Edtior 下选择Keyboard Shortcuts,同样在右侧 “User Preferences” 中输入一下内容
{"shortcuts": [{"command": "jupyterlab_code_formatter:autopep8","keys": ["Ctrl Alt L"],"selector": ".jp-Notebook.jp-mod-editMode"}]
}
- 参考文献:jupyter lab 快速格式化代码 PEP8规范化https://blog.csdn.net/weixin_42124536/article/details/118862309
这篇关于『Linux笔记』服务器搭建神器JupyterLab的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!