JupyterLab 4.1.5搭配pylsp出现virtual_documents权限错误求助
问题场景
使用JupyterLab 4.1.5,按官方指引通过pip安装pylsp后,LSP扩展显示初始化成功,但打开.ipynb文件时触发以下权限错误:
[W 2024-03-21 16:54:39.012 ServerApp] [lsp] initialization of shadow filesystem failed three times
check if the path set byLanguageServerManager.virtual_documents_dirorJP_LSP_VIRTUAL_DIRis correct;
if this is happening with a server for which you control (or wish to override) jupyter-lsp specification
you can try switchingrequires_documents_on_diskoff. The errors were:
[PermissionError(13, 'Permission denied'), PermissionError(13, 'Permission denied'),
PermissionError(13, 'Permission denied')]
尝试关闭requires_documents_on_disk但未解决,不清楚正确配置方式。
解决方案
1. 检查并修复虚拟文档目录权限
- JupyterLab默认会在以下路径创建虚拟文档目录:
- Linux/macOS:
~/.local/share/jupyter/lsp_virtual_documents - Windows:
%APPDATA%\jupyter\lsp_virtual_documents
- Linux/macOS:
- 检查目录权限:
Linux/macOS执行:
确保当前用户拥有读写权限,若权限不足,执行:ls -ld ~/.local/share/jupyter/lsp_virtual_documentschmod -R 700 ~/.local/share/jupyter/lsp_virtual_documents
2. 手动指定可写的虚拟文档目录
- 生成Jupyter配置文件(若未生成):
jupyter server --generate-config - 打开生成的
jupyter_server_config.py,添加以下配置:
替换为你有读写权限的目录,比如c.LanguageServerManager.virtual_documents_dir = "/path/to/your/custom/writable/dir"~/jupyter_lsp_virtual。
3. 正确配置requires_documents_on_disk(针对pylsp)
之前的设置可能未针对pylsp生效,需在配置中指定:
- 打开
jupyter_server_config.py,添加:c.LanguageServerManager.language_servers = { "pylsp": { "server_settings": { "pylsp": { "general": { "requires_documents_on_disk": False } } } } } - 或使用环境变量临时生效:
Linux/macOS:
Windows(PowerShell):export JP_LSP_PYLSP_GENERAL_REQUIRES_DOCUMENTS_ON_DISK=false jupyter lab$env:JP_LSP_PYLSP_GENERAL_REQUIRES_DOCUMENTS_ON_DISK="false" jupyter lab
4. 验证修复
重启JupyterLab,打开.ipynb文件,查看日志是否仍有权限错误提示。
内容的提问来源于stack exchange,提问作者Hutch3232

