基于LazyVim配置LangChain开发环境

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

首先在 Mason 中安装 pyrightruff,分别用于 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 备忘录