JupyterLab 使用与开发全指南:安装、运行、扩展与架构解析
JupyterLab 使用与开发全指南安装、运行、扩展与架构解析【免费下载链接】jupyterlabJupyterLab computational environment.项目地址: https://gitcode.com/gh_mirrors/ju/jupyterlabJupyterLab 是 Project Jupyter 推出的下一代交互式计算环境在经典 Jupyter Notebook 的记事本、终端、文本编辑器、文件浏览器与富文本输出等基础上提供了更加灵活、可扩展的统一用户界面。本文以仓库根目录 README.md 为骨架结合仓库内服务端实现jupyterlab/labapp.py、pyproject.toml与前端包结构packages/application/package.json系统讲解 JupyterLab 的安装、启动、运行模式、扩展机制与开发参与方式帮助读者快速上手并理解其内部运行原理。JupyterLab 是什么按 README 的定义JupyterLab 是一个基于 Jupyter Notebook 与 Jupyter 架构的可扩展、支持交互与可复现计算的运行环境是 Project Jupyter 的下一代用户界面。它把经典 Jupyter Notebook 中大家熟悉的积木块——记事本Notebook、终端Terminal、文本编辑器Text Editor、文件浏览器File Browser、富输出Rich Outputs等——整合进一个灵活而强大的统一界面中。与经典 Notebook 单文档的单页模型不同JupyterLab 采用多文档、多面板的 IDE 式布局你可以并排打开多个笔记本、终端与文件拖拽调整面板位置并将多个文档组织成可保存、可分享的工作区Workspace。前端核心包 packages/application 中可以看到整个界面建立在 Luminolumino/application、lumino/widgets、lumino/commands、lumino/signaling插件化应用框架之上并由jupyterlab/docregistry、jupyterlab/rendermime、jupyterlab/services等模块提供文档注册、渲染与内核服务通信能力。安装 JupyterLab使用 conda / mamba / pip 一键安装README 提供了三种最主流的安装方式任选其一即可# 使用 conda conda install -c conda-forge jupyterlab # 使用 mamba mamba install -c conda-forge jupyterlab # 使用 pip pip install jupyterlabconda-forge渠道的预编译包通常能避免编译依赖适合科学计算环境pip 方式则与现有 Python 虚拟环境无缝集成。从 pyproject.toml 的打包配置看JupyterLab 4.x 要求 Python 3.10依赖的核心组件包括jupyter_server2.19.0,3、jupyterlab_server2.28.0,3、notebook_shim0.2、tornado6.2.0以及jupyter-lsp2.0.0等安装后会自动注册为 Jupyter Server 的服务器扩展。关于pip install --user的 PATH 问题README 特别提醒如果使用pip install --user安装必须把用户级bin目录加入PATH环境变量才能直接运行jupyter lab。在类 Unix 系统FreeBSD、GNU/Linux、macOS上执行export PATH$HOME/.local/bin:$PATH如果遇到 Command jupyter not found 错误一般就是 PATH 未配置正确。此时可以不修改 PATH直接使用完整路径启动~/.local/bin/jupyter lab使用旧版本 Jupyter Notebook 5.3时README 指出当搭配的 Jupyter Notebook 版本早于 5.3 时安装 JupyterLab 后还需手动启用其服务器扩展jupyter serverextension enable --py jupyterlab --sys-prefix如果使用新版 Jupyter Notebook / Jupyter Server则无需手动操作。仓库中的 jupyter-config/jupyter_server_config.d/jupyterlab.json 与 jupyter-config/jupyter_notebook_config.d/jupyterlab.json 展示了安装包自带的两份配置前者在ServerApp.jpserver_extensions中声明jupyterlab: true后者在NotebookApp.nbserver_extensions中声明同样的开关分别保证 JupyterLab 服务器扩展被 Jupyter Server 与旧版 Notebook 自动加载。启动 JupyterLab安装完成后在终端执行jupyter labJupyterLab 会自动在浏览器中打开。若要查看更多启动选项可查看 jupyterlab/labapp.py 中LabApp的examples字段它给出了几种常见用法jupyter lab # 启动 JupyterLab jupyter lab --dev-mode # 开发模式启动无扩展需 pip install -e . 源码安装 jupyter lab --core-mode # 核心模式启动无第三方扩展 jupyter lab --app-dir~/myjupyterlabapp # 以指定应用目录特定扩展组合启动 jupyter lab --certfilemycert.pem # 使用 SSL/TLS 证书启动三种运行模式LabApp的description与initialize_templates方法把 JupyterLab 归纳为三种运行模式理解它们有助于排查资源路径问题核心模式Core mode--core-mode直接使用已安装的jupyterlabPython 包内自带的 JavaScript 静态资源不加载任何第三方扩展。这是稳定版在没有安装扩展时的默认行为。实现上见 jupyterlab/labapp.py会把static_paths/template_paths指向包内的static目录并清空labextensions_path。开发模式Dev mode--dev-mode使用仓库dev_mode目录中未发布的本地 JavaScript 包页面顶部会出现红色条纹提示。仅当 JupyterLab 以pip install -e .方式安装时可用适合前端源码开发。应用模式App modeJupyterLab 允许用户创建多个携带不同扩展组合的应用通过--app-dir指定应用目录默认应用目录可通过jupyter lab path查询。与之配套的子命令在LabApp.subcommands中注册jupyterlab/labapp.pyjupyter lab build # 构建应用staging 目录编译后输出到 static jupyter lab clean # 清理应用目录staging/extensions/settings/static jupyter lab path # 打印应用、用户设置、工作区等目录路径 jupyter lab workspace # 工作区导出/导入/列出子命令 export/import/list jupyter lab licenses # 查看应用使用的前端包许可证其中jupyter lab build支持--dev-build、--minimize、--app-dir、--debug-log-path等参数。LabBuildAppjupyterlab/labapp.py中的两个关键开关值得注意dev_build控制使用 dev 构建还是更精简的 production 构建。默认绝大多数用户为Falseproduction但一旦安装了来自本地文件的 labextensions默认会切换为True显式设置False可强制在所有场景下使用 production 构建。minimize控制 Rspack 构建时是否压缩 JS bundle有助于提升 JupyterLab 整体性能在低内存环境构建失败时关闭压缩往往能解决问题。若需对全部构建关闭这两个选项可在任意 Jupyter 配置目录下新建jupyter_config.py并写入c.LabBuildApp.minimize False c.LabBuildApp.dev_build False配置文件目录列表可用jupyter --paths查看。应用相关目录与路径通过jupyter lab pathLabPathApp见 jupyterlab/labapp.py可打印三类路径它们也分别支持环境变量覆盖应用目录Application directory默认由JUPYTERLAB_DIR环境变量配置用户设置目录User Settings directory默认由JUPYTERLAB_SETTINGS_DIR配置否则回退到默认 Jupyter 配置目录下的/lab/user-settings工作区目录Workspaces directory默认由JUPYTERLAB_WORKSPACES_DIR配置否则回退到默认配置目录下的/lab/workspaces。支持的浏览器README 明确列出当前已知可正常工作的最新版浏览器FirefoxChromeSafari新版 Chromium 内核浏览器一般也能获得良好支持。若在浏览器中遇到渲染异常优先检查浏览器是否升级到最新版本以及前端静态资源static目录是否与当前 JupyterLab 版本匹配。扩展机制让 JupyterLab 无限扩展JupyterLab 的扩展性是其核心设计目标之一。README 说明其扩展分为两类预构建扩展Prebuilt extensions可通过 PyPI、conda 等包管理器分发安装后无需额外构建步骤开箱即用。源码扩展Source extensions直接通过 npm 安装可搜索jupyterlab-extension关键词的 npm 包但需要额外的构建步骤。从 Python 侧看pyproject.toml 声明了扩展管理器的入口点[project.entry-points.jupyterlab.extension_manager_v1] readonly jupyterlab.extensions:get_readonly_manager pypi jupyterlab.extensions:get_pypi_managerLabApp.extension_manager配置项默认值为pypi见 jupyterlab/labapp.py用于选择扩展管理器工厂readonly提供无安装能力的只读管理器pypi则基于 PyPI 与 pip 安装扩展。在 jupyterlab/labapp.py 的initialize_handlers中可以看到非核心模式启动时会实例化所选管理器并将扩展元数据注入前端page_config[extensionManager]若所选管理器初始化失败会回退到ReadOnlyExtensionManager实现在 jupyterlab/extensions/readonly.py同时支持通过LabServerApp.blocked_extensions_uris/allowed_extensions_uris配置扩展黑/白名单列表详见 jupyterlab/extensions/manager.py 中扩展兼容性检查与消息映射的实现。前端扩展管理器 UI 位于 packages/extensionmanager 与 packages/extensionmanager-extension。命令行层面还提供扩展管理工具jupyter labextension入口在 jupyterlab/labextensions.py对应 pyproject.toml 的[project.scripts]支持安装、卸载、禁用、启用、列表等操作应用模式下的扩展安装会触发jupyter lab build重新构建静态资源。从源码开发与贡献为 JupyterLab 开发扩展要开始开发扩展README 指引读者阅读开发者文档与 API 文档。就本仓库而言前端部分是一个大型 TypeScript monorepopackages/目录下按功能拆分为application、notebook、apputils、services、ui-components、rendermime等数十个独立 npm 包每个包都维护独立的package.json如 packages/application/package.json 声明了依赖lumino/application、jupyterlab/services等并统一通过仓库根目录的 package.json 与 lerna.json 组织版本与发布。示例项目位于 examples/覆盖 app、cell、console、filebrowser、notebook、terminal 等典型扩展场景每个示例均包含main.py、package.json与rspack.config.js是上手编写前端扩展的最佳参照。参与 JupyterLab 本体开发从 git 源码安装的说明见 CONTRIBUTING.md。开发者可从源码构建仓库提供的开发相关脚本与工具包括binder/environment.ymlBinder 在线试用环境配置buildutils/版本号管理、包创建/删除、依赖更新、发布等一揽子工程化脚本galata/基于 Playwright 的端到端测试框架含jupyterlab/test大量 UI 回归测试用例scripts/CI 安装脚本ci_install.sh、flake 测试分析、i18n 检查等辅助脚本。JupyterLab 遵循 Jupyter 社区指南Jupyter Community Guides开发者应同时阅读 docs/ 下的用户与开发者文档。每周开发会议社区每周三太平洋时间上午 9:00 召开视频会议任何人都可以旁听或参与讨论会议记录归档于 Jupyter Frontends 团队 compass。版本维护现状与升级建议README 中有一条重要公告JupyterLab 3 已于 2024 年 5 月 15 日到达维护期终点关键问题的修复仅回溯支持至 2024 年 12 月 31 日。仍在使用 JupyterLab 3 的用户应尽快升级到 JupyterLab 4。从本仓库看前端包版本号如jupyterlab/application的4.7.0-alpha.1与 Python 包jupyterlabjupyterlab/_version.py共同推进到 4.x 系列pyproject.toml中Framework :: Jupyter :: JupyterLab :: 4的分类器也印证了当前主线为 4.x。获取帮助与反馈提问交流推荐在 Jupyter Discourse 论坛的 JupyterLab 板块提问公开问答可以沉淀为对他人有用的资料。提交 Bug请先阅读问题报告指南再使用 Bug 模板新建 issue已解决的问题在闲置一段时间后会被 lock bot 锁定如仍需讨论请新开 issue 并引用原 issue。功能建议欢迎使用功能请求模板提交新特性建议帮助项目对更多用户更有用。许可证与版权模式JupyterLab 采用共享版权shared copyright模式所有贡献者保留各自贡献的版权全部代码以修订版 BSD 许可证授权详见仓库 LICENSE。JupyterLab 是 Project Jupyter 的一部分由开放社区开发维护团队受 Jupyter Frontends Council 治理决策型贡献者与代码贡献者分别可见于团队名录与贡献者图谱。总结从pip install jupyterlab到jupyter lab再到通过--core-mode/--dev-mode/--app-dir切换运行形态、借助 prebuilt 扩展与 npm 源码扩展搭建个性化环境JupyterLab 提供了一条从拿来即用到深度定制的完整路径。理解 jupyterlab/labapp.py 中的三种运行模式与构建/清理/路径等子命令、pyproject.toml 中的扩展管理器入口点以及packages/下的前端模块化结构将帮助你更高效地使用、排查和扩展这套计算环境。【免费下载链接】jupyterlabJupyterLab computational environment.项目地址: https://gitcode.com/gh_mirrors/ju/jupyterlab创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Kivy Windows 应用打包实战:基于 PyInstaller 生成可执行程序

Kivy Windows 应用打包实战:基于 PyInstaller 生成可执行程序

Kivy Windows 应用打包实战:基于 PyInstaller 生成可执行程序 【免费下载链接】kivy Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS 项目地址: https://gitcode.com/gh_mirrors/ki/kivy 本文是 Kivy 官方…

2026/9/22 16:01:48 阅读更多 →
Android手机变身Linux桌面工作站:Termux+Proot+XFCE4+VNC完整指南

Android手机变身Linux桌面工作站:Termux+Proot+XFCE4+VNC完整指南

1. 方案选型与整体设计思路先聊点实际的:手机和平板在ARM架构上的性能已经相当能打,日常轻度办公、写代码、跑脚本完全不是问题,但Android本身的图形生态和Linux开发环境完全是两套体系。想在Android上直接跑Linux桌面,又不想刷机…

2026/9/21 14:04:16 阅读更多 →
车载以太网协议架构详解:从物理层到应用层的核心概念与测试实践

车载以太网协议架构详解:从物理层到应用层的核心概念与测试实践

做汽车电子测试这些年,我最大的感受是:车载以太网已经不是“要不要上”的问题,而是“怎么尽快上”的问题。我身边不少做嵌入式、做CAN总线出身的朋友,最近都在补车载以太网的知识,原因也简单——智能驾驶和智能座舱的数…

2026/9/21 14:04:16 阅读更多 →

最新新闻

拒绝配置卡壳 联系邮箱号码大全速查手册实战指南

拒绝配置卡壳 联系邮箱号码大全速查手册实战指南

拒绝配置卡壳 联系邮箱号码大全速查手册实战指南 配置环境就卡半天,这种痛苦谁懂?装个依赖报 404,改个端口号被防火墙拦截,或者最经典的——代码里硬编码了邮箱和电话,上线前发现漏改了一个测试账号,导致数据发给了老板。别急,今天不聊虚的,直接…

2026/9/22 16:02:04 阅读更多 →
kindle使用教程与一个人抽烟伤感图片对比选型

kindle使用教程与一个人抽烟伤感图片对比选型

面试被问原理卡壳?用Kindle源码解析性能优化 上周面试某大厂后端岗,面试官问:“如何优化一个高频读取的配置文件?”我愣了三秒,脑子里全是 read() 系统调用和页缓存,但结合不了业务场景。面试官眼神变了,我知道这轮悬了。…

2026/9/22 16:02:04 阅读更多 →
酷狗音乐2012源码拆解:3个关键点实现入门到精通

酷狗音乐2012源码拆解:3个关键点实现入门到精通

酷狗音乐2012源码拆解:3个关键点实现入门到精通 还在为官方文档冗长抓不住重点而头疼?别慌,今天直接带你拆解酷狗音乐2012版的核心逻辑。…

2026/9/22 16:02:04 阅读更多 →
yintu实战搭建:3步搞定项目架构,告别只会语法不会落地

yintu实战搭建:3步搞定项目架构,告别只会语法不会落地

yintu实战搭建:3步搞定项目架构,告别只会语法不会落地 刚学完Python语法,打开PyCharm脑子一片空白?别慌,这是90%新手的通病。 你会写 for…

2026/9/22 16:02:04 阅读更多 →
3步吃透herculean源码,搞定性能优化难题

3步吃透herculean源码,搞定性能优化难题

3步吃透herculean源码,搞定性能优化难题 官方文档翻了三遍还是云里雾里?别慌,这是每个开发者都遇到的坑。herculean 这个库在高性能计算场景下确实能打,但它的 API…

2026/9/22 16:02:04 阅读更多 →
襟川阳一入门到精通:版本升级API全变后的性能突围

襟川阳一入门到精通:版本升级API全变后的性能突围

襟川阳一入门到精通:版本升级API全变后的性能突围 版本升级后 API 全变了,代码跑不通、逻辑对不上,这是很多开发者在接手遗留系统时的噩梦。想要从混乱中理清脉络,实现 襟川阳一 相关的业务逻辑从 入门到精通…

2026/9/22 16:01:02 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/22 4:32:41 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/22 4:38:57 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/22 8:51:04 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/22 2:43:42 阅读更多 →