我正在使用 Neovim 并安装mypy,mason并且我还使用以下方式配置它null-nvim:
local sources = { null_ls.builtins.diagnostics.mypy }
Run Code Online (Sandbox Code Playgroud)
这里,mypy安装的mason,其实是安装在单独的虚拟环境下的~/.local/share/nvim/mason/packages/mypy。mypy如果第三方库安装在另一个环境中,似乎总是会发出警告“找不到实现或库存根”。
例如,我激活了安装myenv位置openai,然后使用 Neovim 打开了一个 Python 文件:
另一方面,如果我安装mypy在里面myenv,那么一切正常。但这种方法要求我为每个虚拟环境安装每个副本mypy。通过安装时如何避免警告消息mason?
例如,如果您在 virtualenv 中运行代码,请确保
mypy在 virtualenv 中安装和使用。或者,如果您想使用全局安装的mypy,请设置--python-executable命令行标志以指向包含已安装的第三方包的 Python 解释器。
似乎mypy无法检测到我当前使用的virutalenv。
以下是 Linux 和 macOS 中的解决方法:
nls.builtins.diagnostics.mypy.with({
extra_args = function()
local virtual = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or "/usr"
return { "--python-executable", virtual .. "/bin/python3" }
end,
}),
Run Code Online (Sandbox Code Playgroud)
上面的代码首先检测 virutalenv,否则,它将使用默认值/usr/bin/python3作为--python-executable.
| 归档时间: |
|
| 查看次数: |
2028 次 |
| 最近记录: |