基于LazyVim配置LangChain开发环境

最近在学习 LangChain,研究了一下配置基于 neovim 的 LangChain 开发环境,在第三方包导入提示上踩坑折腾了好久,做一下备忘。当然,目前 Python 首选当然还是既免费又好用的 PyCharm 了,更轻量的可以用 VS Code。

首先在 Mason 中安装 pyright 和 ruff,分别用于 LSP 服务和代码格式化。

pyright 是微软开发的 Python 代码静态类型检查工具,同时也是默认 neovim 默认的 python lsp 语言服务器。

ruff 一款用 Rust 编写的极速 Python Linter。

然后在 .config/nvim/lua/plugins/ 中新增配置文件 python.lua,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
return {
-- 切换虚拟环境
{
"linux-cultist/venv-selector.nvim",
opts = {
search = {
miniconda = {
command = "fd /bin/python$ ~/miniconda3/envs --full-path",
},
},
},
},

-- 自动导入提示
{
"neovim/nvim-lspconfig",
opts = {
servers = {
pyright = {
settings = {
python = {
analysis = {
autoImportCompletions = true,
typeCheckingMode = "basic",
autoSearchPaths = true,
diagnosticMode = "workspace",
useLibraryCodeForTypes = true
}
}
}
}
}
}
}
}

完成之后先在终端中切换到对应的虚拟环境,然后再启动 neovim 就可以使用代码提示、自动导入之类的功能了,当然也可以直接进入 neovim 后使用 cv 选择对应的虚拟环境。

pyright 的 diagnosticMode 配置有两个值:openFilesOnly 和 workspace,如果设置为 openFilesOnly 的话 pyright 只会分析打开的文件,所以一直没有我要导入的包的提示。一直在复制 AI 给出的配置,没有去看官方文档,以为是插件的问题,又是切换插件又是修改其他配置,还看了很多技术论坛的讨论,浪费了很多时间。

附 neovim 的常用快捷键:lazyvim 备忘录