You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neovim中为pylsp安装配置非默认Python版本

解决Neovim中pylsp使用指定Python3.7版本的问题

核心原因

你之前用PYTHONPATH启动Neovim的方法无效,因为PYTHONPATH仅控制Python模块的搜索路径,不会改变Neovim调用的Python解释器版本。:LspInstall默认会调用系统默认Python(3.5)安装pylsp,所以最终运行的还是旧版本环境的pylsp。

解决方法

方法1:手动在Python3.7环境安装pylsp并指定路径

  1. 找到Python3.7的可执行文件路径(比如/usr/bin/python3.7),执行以下命令安装pylsp:
    /usr/bin/python3.7 -m pip install python-lsp-server
    
  2. 查找pylsp的可执行路径:
    /usr/bin/python3.7 -m pip show python-lsp-server | grep Location
    
    示例输出如果是Location: /usr/lib/python3.7/site-packages,则pylsp路径为/usr/lib/python3.7/site-packages/bin/pylsp
  3. 在Neovim的LSP配置文件(如init.lua)中指定该pylsp路径:
    require('lspconfig').pylsp.setup({
      cmd = { "/usr/lib/python3.7/site-packages/bin/pylsp" },
      -- 保留你的其他LSP配置项
    })
    

方法2:用虚拟环境隔离(更推荐)

虚拟环境能彻底隔离项目依赖,避免版本冲突:

  1. 创建Python3.7虚拟环境:
    /usr/bin/python3.7 -m venv ~/py37-venv
    
  2. 激活环境并安装pylsp:
    source ~/py37-venv/bin/activate
    pip install python-lsp-server
    deactivate
    
  3. 配置Neovim使用虚拟环境中的pylsp:
    require('lspconfig').pylsp.setup({
      cmd = { "~/py37-venv/bin/pylsp" },
      -- 可选:指定LSP使用的Python解释器路径
      settings = {
        pylsp = {
          python = {
            pythonPath = "~/py37-venv/bin/python"
          }
        }
      }
    })
    

注意事项

  • 不要使用:LspInstall再安装pylsp,否则会覆盖为系统默认Python版本的实例
  • 确保配置文件路径正确,若路径包含特殊字符或波浪号,可写绝对路径(如/home/你的用户名/py37-venv/bin/pylsp)

内容的提问来源于stack exchange,提问作者vekarpov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:45:21