使用Mason安装pylsp后nvim出现pylsp.plugins.rope_rename缺失错误
问题:pylsp启动报错
ModuleNotFoundError: pylsp.plugins.rope_rename 通过Mason安装pylsp后,启动Neovim时触发如下错误:
Error executing vim.schedule lua callback: /usr/share/nvim/runtime/lua/vim/lsp/client.lua:588: RPC[Error] code_name = InvalidParams, message = "ModuleNotFoundError: No module named 'pylsp.plugins.rope_rename'" data = { traceback = { " File \"/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pylsp_jsonrpc/endpoint.py\", line 117, in consume self._handle_request(message['id'], message['method'], message.get('params')) ", ' File "/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pylsp_jsonrpc/endpoint.py", line 197, in _handle_request handler_result = handler(params) ^^^^^^^^^^^^^^^ ', ' File "/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pylsp_jsonrpc/dispatchers.py", line 25, in handler return method(**(params or {})) ^^^^^^^^^^^^^^^^^^^^^^^^ ', ' File "/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pylsp/python_lsp.py", line 326, in m_initialize self.config = config.Config( ^^^^^^^^^^^^^^ ', ' File "/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pylsp/config/config.py", line 89, in __init__ self._pm.load_setuptools_entrypoints(PYLSP) ', ' File "/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/pluggy/_manager.py", line 421, in load_setuptools_entrypoints plugin = ep.load() ^^^^^^^^^ ", " File \"/home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/lib/python3.11/site-packages/importlib_metadata/__init__.py\", line 189, in load module = import_module(match.group('module')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ", ' File "/home/wiskanianaconda3/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ', ' File "<frozen importlib._bootstrap>", line 1204, in _gcd_import ', ' File "<frozen importlib._bootstrap>", line 1176, in _find_and_load ', ' File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked ' } } stack traceback: [C]: in function 'assert' /usr/share/nvim/runtime/lua/vim/lsp/client.lua:588: in function '' vim/_editor.lua: in function <vim/_editor.lua:0>
已尝试重新安装pylsp、手动安装rope,问题未解决。
解决方案
1. 安装pylsp-rope插件到Mason的虚拟环境
Mason为每个包创建独立虚拟环境,直接全局安装的依赖无法被pylsp识别,需先激活对应虚拟环境:
source /home/wiskani/.local/share/nvim/mason/packages/python-lsp-server/venv/bin/activate
安装pylsp专属的rope重命名插件:
pip install pylsp-rope
安装完成后退出虚拟环境:
deactivate
2. 禁用rope_rename插件(无需安装依赖)
如果不需要重命名功能,可在pylsp配置中直接禁用该插件,避免加载失败:
require('lspconfig').pylsp.setup({ settings = { pylsp = { plugins = { rope_rename = { enabled = false } } } } })
3. 彻底清理重装pylsp
若以上方法无效,删除现有安装目录后重新安装:
rm -rf /home/wiskani/.local/share/nvim/mason/packages/python-lsp-server
在Neovim中执行命令重新安装:
:MasonInstall python-lsp-server
安装完成后重复步骤1安装pylsp-rope。
内容的提问来源于stack exchange,提问作者Wiskani
相关产品推荐
相关产品推荐

