VSCode集成了源代码控制和预提交

问题描述

https://pre-commit.com与VSCode挂钩一起使用时,挂钩取决于Python venv中安装的软件包。在预提交中可以指定使用“系统”作为环境。从终端启动并运行所需的venv,效果很好。

但是,使用集成的源代码控制,似乎可以访问全局信息,因此所需的程序包不可用。

这里有解决方法吗?到目前为止,我在预提交配置中指定了入口点“ path / to / bin / python -m package”。但是,我确实认为集成源控件也应该至少尊重选定的干扰者。

有什么想法吗?

解决方法

查看“ VS Code”窗口底部的小任务栏。

单击Python "version" "32/64-bit"将使您选择可用的口译员(还显示了venv中的任何内容)

enter image description here

,

VSCode 似乎无意识地选择它尊重什么和不尊重什么。我有同样的情况 - 在集成终端上提交工作正常;从源代码管理侧边栏执行此操作会给我一条“找不到 Python”消息(仅在安装预提交挂钩后才会出现)。

我的猜测是,您必须通过反复试验,在系统中的每个 Python 安装中安装 pre-commit,直到找到侧边栏调用的那个。