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

MacOS下NVChad的null-ls调用mypy失败的排查修复咨询

排查与解决null-ls找不到pyenv环境中mypy的问题

核心问题

Neovim(NVChad)启动时未继承shell的pyenv环境变量,导致null-ls调用mypy时,找不到你指定的pupdb-3.12.2环境里的命令。

先做排查

  • 打开NVChad,输入:!echo $PATH和:!pyenv version,对比终端里的输出:
    • 如果NVChad里的PATH没包含~/.pyenv/versions/pupdb-3.12.2/bin,说明环境变量没传进来
    • 如果pyenv version输出不是pupdb-3.12.2,说明局部环境没在Neovim里生效
  • 终端里激活pupdb-3.12.2,执行which mypy,复制这个绝对路径备用

解决办法

方法1:让Neovim继承shell环境(最稳妥)

MacOS用zsh的话,编辑~/.zprofile,添加两行:

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"

保存后重启电脑,再打开NVChad验证:!pyenv version和:!which mypy,应该就和终端一致了。
注:如果是从Spotlight/启动台打开NVChad,必须改.zprofile,因为GUI程序不会读.zshrc

方法2:直接给null-ls指定mypy绝对路径

找到NVChad的null-ls配置文件(一般是custom/configs/null-ls.lua),修改mypy的配置:

local null_ls = require("null-ls")
null_ls.setup({
  sources = {
    -- 给mypy指定绝对路径
    null_ls.builtins.diagnostics.mypy.with({
      command = "/Users/你的用户名/.pyenv/versions/pupdb-3.12.2/bin/mypy",
    }),
    -- 其他代码保持不变
  },
})

保存后重启NVChad,null-ls就能直接找到正确的mypy了。

方法3:重置项目局部pyenv环境

到项目目录下,先删了.python-version,再执行pyenv local pupdb-3.12.2重新生成,确保文件里没有多余空格或换行,避免pyenv识别出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:11:10