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

如何解决Pyright的“Import [module] could not be resolved”导入警告?

解决Neovim LSP(Pyright)无法识别跨目录导入的问题

1. 精准配置Pyright的额外路径

先把pyrightconfig.json放在Projects根目录,内容要明确指向依赖目录,注意路径是相对配置文件的:

{
  "extraPaths": ["Libs/PyLibs"]
}

如果用pyproject.toml,就加这段:

[tool.pyright]
extraPaths = ["Libs/PyLibs"]

配置完重启Pyright服务(:LspRestart pyright),别小看这一步,很多人栽在路径写错或者配置文件放错位置上。

2. 给PyLibs加个空的__init__.py

虽然Python 3支持无__init__.py的命名空间包,但Pyright对这类包的识别经常出问题。在Libs/PyLibs下新建个空的__init__.py,明确告诉Pyright这是个可导入的Python包。

3. 确认Neovim的工作目录是项目根

别从Tasks或Scripts子目录打开Neovim,一定要把工作目录设为Projects根目录。如果已经打开了,执行:cd /你的Projects路径切换;启动时也可以直接指定:

nvim -c "cd /你的Projects路径" Tasks/Scripts/test.py

Pyright是按当前工作目录找配置和解析路径的,工作目录不对,配置文件根本不会生效。

4. 强制刷新Pyright的配置缓存

有时候LSP会缓存旧配置,执行这两个命令强制刷新:

  • 重启Pyright服务::LspRestart pyright
  • 手动触发配置重载::lua vim.lsp.buf.execute_command({command = "pyright.reloadConfiguration"})

5. 检查并更新Mason安装的Pyright版本

旧版Pyright可能有路径解析的bug,打开:Mason找到pyright,看看是不是最新版,不是的话直接更新。

6. 关联项目的虚拟环境(如果用了的话)

如果项目用了虚拟环境,得让Pyright对应上:
在pyrightconfig.json里加:

{
  "python.pythonPath": "/你的Projects路径/venv/bin/python"
}

或者在Neovim的LSP配置里写死:

require('lspconfig').pyright.setup{
  settings = {
    python = {
      pythonPath = "/你的Projects路径/venv/bin/python"
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:50:26