JupyterLab教程:程序员的笔记本神器v2.0

简介: JupyterLab教程:程序员的笔记本神器v2.0

之前写过一份JupyterLab的使用教程,但是随着个人使用时间的增加和更多优秀插件的出现,断断续续我基于JupyterLab:v3.0+衍生出了自己的最佳实践,本篇文章将从以下方面更加全面地介绍JupyterLab:


  • 搭建安装

  • 基本功能

  • 插件推荐

  • 容器化最佳实践

最终成品如下图所示,有兴趣的话一起来使用看看吧 ✨

1.png

介绍


了解JupyterLab之前先说下什么是Jupyter Notebook,简单来说它是一个交互式的开发环境,其提供了在Web上编写运行代码的能力,还可以同时使用md语法编写文档。


而JupyterLab是Jupyter Notebook的下一代产品,如今已经发展到第三个大版本了,其主要优势有:


  • 更现代化的界面设计和更灵活的架构

  • 提供终端交互和文件浏览器

  • 结合插件可以快速打造成 Web 上的 IDE 笔记本

通过使用JupyterLab,我们能够以灵活,集成和可扩展的方式处理代码与文档,对于以下人群非常有帮助:


  • 随时随地希望试验一些代码片段,如 Python、Julia、R、Go、Scala 等

  • 大数据开发&机器学习进行数据分析、处理、建模等

  • 作为笔记本,可以将代码的输入输出解释直接导出成笔记文档,结合插件还可以绘制流程图等

安装


接下来,我将以 Python 为默认语言来搭建JupyterLab,这里我为了获取一个干净的环境直接使用Docker进行构建:

docker run -it --name jupyter_test -p 8888:8888 python:3.7-slim /bin/bash

用Docker目的是方便出错后删除重来,这里仅做演示,大家直接在本机操作即可,只需要确认你安装好了Python基本环境就行:

# Input
python
# Output
Python 3.6.15 (default, Oct 13 2021, 09:43:57)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.

有了Python环境就可以直接安装JupyterLab:

# 先换源
pip config set global.index-url https://pypi.douban.com/simple/
# 一行命令搞定
pip install jupyterlab

这一行命令我们就已经安装好了JupyterLab,启动起来试试看吧:

jupyter lab --allow-root --no-browser

直接访问:http://127.0.0.1:8888/lab?token={TOKEN}就能看到界面了!怎么样,方便吧。但是要想更加优雅地使用JupyterLab,还是得进行一些配置,让我们继续吧。


基本功能


设置密码


每次启动JupyterLab默认是通过Token的形式进行访问的,但是Token每次都不一样,而且还会过期,所以我们还是设置成密码的形式进行访问吧:

# 进入python交互环境
python

生成密码:

from notebook.auth import passwd
passwd()
# 输入你自己设置登录JupyterLab界面的密码 然后会有一串输出,记得复制下来,等会配置需要使用

修改JupyterLab 配置文件:

# Input
jupyter lab --generate-config
# Output
Writing default config to: /root/.jupyter/jupyter_lab_config.py

编辑这个文件vim /root/.jupyter/jupyter_lab_config.py,设置以下参数:

c.ServerApp.allow_root = True
c.ExtensionApp.open_browser = False
c.ServerApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$C2MHPsnHYOGQBXF30d7eag$bdeIwZFwzt7HOYkTECRPVA'
jupyter lab

此时再次进入http://127.0.0.1:8888/就需要输入密码了,为了方便后续一些功能的演示,我们顺便建立一个交互式脚本吧,操作流程如下图:

2.png

代码交互


代码提示


进入文件后,我们先使用!pip install numpy安装一个第三方库用于测试。在代码关键字后按Tab即可看到代码提示:

3.png

文档注释&查看


按Shift + Tab即可看到文档注释提示:

4.png

注:如果代码提示功能有问题,设置下jedi版本,pip install jedi==0.17.2。


对于数据科学方向的程序员来说,一些常用库的文档查看特别方便,Jupyterlab已经将常用文档内置,还提供了关键函数搜索功能,再也不用打开官方文档查找了:

5.png

代码调试


JupyterLab默认支持代码调试,使用也很简单,点击右上角的Bug图标开启即可:

6.png

文档多窗口


一般开发者的屏幕都是比较大的,这个功能特别适合左边窗口实验代码,右边看教程文档的情景:

7.png

cell可以拖拽且输出可以新窗口显示

8.png

随时启动新的终端交互

9.png

TOC 目录


JupyterLab脚本是可以编写MD文本的,为了方便代码的可读性,侧边栏提供了目录展示功能,程序员可以更加方便地对自己代码进行管理:

10.png

风格设置


按键风格


支持vim emacs等按键风格:

11.png界面&代码主题


JupyterLab默认提供了黑暗&明亮两种主题,开发者可以自由使用,如果对于主题有更多要求,接下来在插件部分我会介绍我使用的插件主题:

12.png

编辑器界面主题设置:

13.png

插件


JupyterLab本身的功能了解上面那么多就已经够日常基本使用了,但是社区的开发者还是贡献了很多有意思的插件。接下来我会介绍一些比较基础但又很实用的插件,让大家的效率进一步提升。


jupyterlab_code_formatter[1]


代码格式写插件,我使用的是Python,用这个插件可以设置保存的时候自动用black和isort进行代码格式化,安装:

# 安装插件
pip install jupyterlab_code_formatter
# 安装格式化工具
pip install black isort

安装完成后,脚本界面右上角就会有一个格式化按钮,开发者也可以设置保存就触发格式化:

14.png

ipydrawio[2]


开发者除了日常开发,还有文档编写工作,涉及到文档编写,基本上都会涉及到流程图绘制需求,ipydrawio则可以让你方便地在JupyterLab绘制流程图,安装:

pip install ipydrawio[all]

使用起来也非常方便,还可以分享出去,支持绘制的类型如下:

1.jpg

安装成功后和之前新建脚本的方式一样绘制流程图:

15.png

jupyterlab-unfold[3]


这个插件让JupyterLab的文件浏览具有了和 IDE 一样的功能,原本JupyterLab在目录间跳转是一级一级进出,有了这个插件可以按照目录树的形式进行操作,极大地提升了打开不同目录下脚本的效率。

pip install jupyterlab-unfold

使用效果截图:

2.jpg

Theme


JupyterLab本身仅提供了简单的黑白两套主题,但是我对代码主题还是挺有追求的,所以也在社区找了下看是否有比较好的主题实现,万幸我个人常用的主题都有其他人开源了出来,大家有兴趣了可以试试:


  • theme-darcula[4]:非常漂亮的Darcula主题,目前在JupyterLab主题里面热度最高

  • jupyterlab-theme-solarized-dark[5]:Solarized 黑暗主题,效果可以看第一部分的效果展示图

安装:

pip install theme-darcula
pip install jupyterlab-theme-solarized-dark

Darcula主题效果图如下:

16.png

汉化


官方针对中文用户提供了汉化包,还是挺良心的:

pip install jupyterlab-language-pack-zh-CN

效果如下:

17.png

容器化最佳实践


为了方便在不同系统环境下能够快速使用JupyterLab,于是我选用Docker构建镜像,这样可以直接将配置和插件全部统一为镜像,这样有以下好处:


  • 跨平台,其他平台只要安装Docker就可以一键使用JupyterLab

  • 插件配置:

  • 保存则自动代码格式化

  • 主题支持:Solarized和Darcula

  • 中文汉化支持,默认还是英文

  • 代码变量跳转支持

  • 流程图、目录树等

  • 终端支持oh my zsh


所以上面介绍了这么多,你只需要看一遍下来熟悉下相关概念即可,倒是不用从头都搭一遍,如果你要使用,运行下面这行命令即可:

docker run --name jupyter_pylab -it -d --restart=always -p 0.0.0.0:8765:8888 -e SHELL="/bin/zsh" -v "`pwd`:/project-dir" howie6879/jupyter-lab-for-python37:v3.1.4 --allow-root --no-browser --port=8888

享受JupyterLab吧,如有错漏,请留言交流,谢谢。

相关文章
|
9月前
|
机器学习/深度学习 自然语言处理 算法
从贝叶斯视角解读Transformer的内部几何:mHC的流形约束与大模型训练稳定性
大模型训练常因架构改动破坏内部贝叶斯几何结构,导致不稳定。研究表明,Transformer通过残差流、注意力与值表征在低维流形上实现类贝叶斯推理。mHC通过约束超连接保护这一几何结构,确保规模化下的训练稳定与推理一致性。
789 7
从贝叶斯视角解读Transformer的内部几何:mHC的流形约束与大模型训练稳定性
|
12月前
|
数据可视化 算法 安全
智能体赋能企业管理:数据驱动决策的治理现代化实践
北京某互联网公司HR每月核算百人绩效耗时3天、准确率仅85%。引入“智能体来了”HR智能系统后,通过API整合Jira、企业微信、CRM数据,采用Drools规则引擎实现考核逻辑可配置,ECharts可视化分析,将核算压缩至2小时,准确率达99%,离职预测准确率82%,助力企业迈向数据驱动管理,符合国家智能化升级与数据安全规范要求。
|
6月前
|
人工智能 安全 机器人
OpenClaw养虾笔记-入门教程
OpenClaw让智能体更进了一步,相较于传统LLM的一问一答方式,其优点在于,能便捷的扩展海量工具,也支持集成用户自己开发的工具、脚本,还能自行拆解复杂任务成工作流,完成工作流的设计和开发。并能将拆解的工作流或者用户自己的工作流串接成完整的流水线,每个环节调用不同的skills,完成复杂任务。除了能24小时持续工作外,甚至还能进行自我迭代改进。新手最大的困惑是安装了,也不清楚下一步该怎么办,本文描述从0开始构建OpenClaw,让龙虾在工作和生活中发挥作用。
|
8月前
|
人工智能 监控 数据可视化
给 Claude 装个仪表盘,时刻监测Token消耗跟任务进度
Anthropic新推的Claude Code虽强大,但缺乏实时状态反馈。Claude HUD(作者Jarrod Watts)为其增添终端底部HUD状态栏,实时显示Token消耗、工具调用、任务进度与Git分支等,让AI协作“透明化”“可视化”,大幅提升开发掌控感与效率。(239字)
7127 7
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
2813 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
弹性计算 JavaScript Ubuntu
WebSocket协议相关的测试命令工具使用简介
本文介绍了针对WebSocket的测试工具wscat和websocat的基本使用方法,以及通过curl命令测试HTTP/HTTPS协议的方式。对于WebSocket,直接使用curl测试较为复杂,推荐使用wscat或websocat。文中详细说明了这两种工具的安装步骤、常用参数及连接示例,例如在ECS上开启8080端口监听并进行消息收发测试。此外,还提供了curl命令的手动设置头部信息以模拟WebSocket握手的示例,但指出curl仅能作为客户端测试工具,无法模拟服务器。
4531 5
|
存储 人工智能 关系型数据库
从“听指令”到“当参谋”,阿里云AnalyticDB GraphRAG如何让AI开窍
阿里云瑶池旗下的云原生数据仓库 AnalyticDB PostgreSQL 版 GraphRAG 技术,创新融合知识图谱动态推理+向量语义检索,通过实体关系映射与多跳路径优化,构建可应对复杂场景的决策引擎。本文将通过家电故障诊断和医疗预问诊两大高价值场景,解析其如何实现从“被动应答”到“主动决策”的跨越。
|
人工智能 运维 自然语言处理
2025保姆级JupyterLab 4.0安装指南|全平台部署+AI编程环境配置
JupyterLab 是下一代交互式计算开发环境,2025年发布的4.0版本新增多语言内核支持(Python/R/Julia/JavaScript一键切换)、实时协作功能、AI辅助编程(集成GPT-5代码补全与错误诊断)和可视化调试器等特性。本文详细介绍其技术定位、跨平台安装方案、安装流程、高阶功能配置、典型应用场景及故障排查指南,帮助用户高效使用JupyterLab进行开发。
|
Web App开发 Rust 前端开发
常见浏览器内核
常见浏览器内核包括:Blink(用于 Chrome、Edge 等),注重性能与现代网页支持;WebKit(用于 Safari 和早期 Chrome),强调高效能;Gecko(用于 Firefox),支持强大扩展;Trident(用于 IE,已被 Edge 替代);EdgeHTML(用于早期 Edge,现已转为 Blink);Servo(实验性,基于 Rust)。这些内核负责渲染网页内容、处理 CSS 和 JavaScript,直接影响用户体验,并随技术发展持续演进。

热门文章

最新文章