摘要:
jupyterlab-lsp为Jupyter Notebook和.py文件提供类似VS Code/PyCharm的IDE功能,包括智能提示、跳转定义、自动补全、实时诊断等,支持多语言且无需内核运行即可实现静态分析。2025-2026年最新版本推荐搭配JupyterLab 4.x使用,支持Python≥3.9。安装需配置语言服务器(如pylsp或pyright),并可通过个性化设置优化补全速度与诊断规则。常见问题如跳转限制或卡顿可通过符号链接或调整超时参数解决。该扩展显著提升JupyterLab的开发
让你的 Jupyter Notebook 和 .py 文件拥有接近VS Code / PyCharm的智能提示、跳转定义、自动重命名、实时诊断等 LSP 功能,而且支持多语言!
2025–2026 年最新版本已经非常成熟,强烈推荐升级使用。效果如下
一、jupyterlab-lsp 到底能干啥?(核心亮点)
| 功能 | 效果描述 | 是否需要内核运行 |
|---|---|---|
| 悬停提示(Hover) | 鼠标悬停 + 按 Ctrl 显示函数签名、文档、类型信息 | 否 |
| 实时诊断(Diagnostics) | 红/橙色波浪线标出错误/警告,鼠标悬停看详细说明 | 否 |
| 跳转定义 / 查找引用 | Alt + 点击 / 右键菜单跳转,Alt + o 返回 | 否 |
| 引用高亮 | 光标放在变量/函数上,全文件同名位置高亮 | 否 |
| 自动补全 & 连续提示 | 输入 . 自动触发 / 可开启打字即提示(continuousHinting) | 部分静态分析无需 |
| 函数签名提示 | 输入 ( 自动弹出参数提示,支持多重载 | 否 |
| 纯静态补全(Kernel-less) | 即使内核没启动 / 卡死,也能补全(Julia、Python、R 效果都很强) | 否 |
| 重命名符号 | F2 / 右键 → 重命名,全文件/多文件同步改名 | 否 |
| 诊断面板 | 命令面板搜 “Show diagnostics panel”,可排序、跳转、过滤、复制错误信息 | 否 |
最爽的一点:内核补全(DataFrame 列名、字典 key 等动态内容) + LSP 静态分析补全可以同时存在,而且可以设置谁优先、谁禁用。
二、2026 年安装步骤(推荐方式)
环境要求(非常重要!)
- JupyterLab≥4.1.0且<5.0.0a0(目前 5.x 系列还未正式全面适配,建议暂时停留在 4.x)
- Python≥3.9
推荐安装流程(conda 用户)
# 1. 创建新环境(强烈建议)conda create -n jlab-lsppython=3.11conda activate jlab-lsp# 2. 安装 JupyterLab 4.x + jupyterlab-lsp(2025-2026 最新稳定版)condainstall-c conda-forgejupyterlab=4.3jupyterlab-lsp# 或者用 pip(版本自己控制更灵活)pipinstall'jupyterlab>=4.1.0,<5.0.0a0'jupyterlab-lsp==5.2.0安装常用语言服务器(选你需要的装)
Python(最常用):
# 推荐 pylsp 全家桶(包含 flake8、pydocstyle、black 等)pipinstall'python-lsp-server[all]'# 或者更现代的基于 pyright 的方案(2025年后很多人转用)pipinstallbasedpyright# 或 pyrightR 语言:
condainstall-c conda-forge r-languageserver# 或R -e'install.packages("languageserver")'Julia(需要额外装 LanguageServer.jl)
其他语言(TypeScript、bash、markdown 等)请参考官方支持列表:Language Servers 页面
安装完语言服务器后,重启 JupyterLab即可生效。
三、推荐的个性化配置(放 settings 里)
打开Settings → Advanced Settings Editor → jupyterlab-lsp
最常用的一段配置(Python 用户):
{"python":{"kernelCompletionsTimeout":0.4,"continuousHinting":true,"disableCompletionsFrom":["Kernel"]// 只用 LSP 补全(更快、更准)},"language_servers":{"pylsp":{"serverSettings":{"pylsp.plugins":{"pycodestyle":{"enabled":false},"pyflakes":{"enabled":false},"flake8":{"enabled":true},"pydocstyle":{"enabled":true},"autopep8":{"enabled":false}}}}}}想用基于 pyright 的静态分析?可以尝试安装basedpyright并在配置中启用。
四、常见问题 & 小技巧
Q1:为什么有些文件跳转不到系统包 / venv 里的定义?
Linux/macOS 用户请在 notebook 目录下创建符号链接(只做一次):
cd你常用的notebook目录ln-s / .lsp_symlink然后启动 jupyterlab 时加参数:
jupyter lab --ContentsManager.allow_hidden=TrueQ2:补全太慢 / 卡顿怎么办?
- 调低
kernelCompletionsTimeout(默认 0.6s → 0.3s) - 直接禁用内核补全,只用 LSP(见上面配置)
- 使用更快的语言服务器(如 basedpyright 代替 pylsp)
Q3:支持 JupyterLab 5.x 吗?
截至 2026 年 1 月,官方仍推荐 4.x 系列。5.x 支持正在开发中,建议暂时不要强行升级。
最后
一句话总结:jupyterlab-lsp 是目前 Jupyter 生态里最接近现代 IDE 体验的扩展。
装上它,你会发现自己越来越不想离开 JupyterLab 写代码了。
有问题欢迎留言区讨论~ 也欢迎点个赞收藏,下次直接翻出来用!
(完)