如何解决 lsp-bridge 在 Debian 的 Python 环境问题

Problem

在试图使用 pip 安装 Python 环境的时候,Debian 不建议直接在系统的 Python 环境下安装,而是建议使用虚拟环境,或者使用 apt install python3-xyz

我在安装 lsp-bridge 的时候就是采用的第二种方法,但是在我尝试安装 pyright 的时候,官方的 apt 源下是没有这个包的。

大家是如何解决这个问题的呢?我可以专门创建一个虚拟环境下载 lsp-bridge 的依赖,然后让 lsp-bridge 自动加载这个虚拟环境吗?

用 pipx 或者 uv 来安装相互环境独立的 python app。更推荐 basedpyright 而不是 pyright。

不行啊。我使用 uv tool install 安装了所有依赖,然后把 apt 里面原来安装的依赖删除了,但是 lsp-bridge 的补全失效了

我使用 uv 安装了 basedpyright 之后,再用 apt install python-xyz 的方法把 lsp-bridge 的依赖安装回来就可以了。

其实也建议你使用 uv 来管理 lsp-bridge 的环境。

具体做法就是你把 ~/.config/emacs 或者 ~/.emacs.d 作为你的 uv 的 python 项目的 base 环境,然后用 uv 把 epc sexpdata 之类的包装在这个这里,然后 uv 会创建一个 .venv 的目录。

然后你把 lsp-bridge-python-command 这个变量设置为 ~/.config/emcas/.venv/python3

这样做的好处就是你可以自己写一个 shell 脚本构建,并且这个构建脚本只需要 uv,和你具体使用哪个发行版(要调用哪个包管理器)无关,方便跨环境迁移配置。

3 个赞

原来如此,多谢了,其实我原本的想法就是能不能这么做。我也想使用这个方法试试 eaf。不过我刚刚尝试了一下,发现 basedpyright 安装在这个虚拟环境下是没有用的,或许还要额外的设置。

大佬,方便给 lsp-bridge 提也给UV的PR吗? 谢谢

1 个赞

一直觉得用全局安装的python来使用lsp-bridge不是很优雅,大佬找到的方法正合适 :+1: