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

Mar*_*ran 9 python pre-commit visual-studio-code pre-commit.com

https://pre-commit.com与依赖于 Python venv 中安装的包的 VSCode 挂钩使用时。在预提交上可以指定使用“系统”作为环境。这在具有所需 venv 活动的终端上非常有效。

然而,使用集成的源代码控制似乎可以访问全局 interpeter,因此所需的包不可用。

这里有解决方法吗?至于现在我在预提交配置中指定入口点“path/to/bin/python -m package”。但是我确实认为集成的源代码控制也应该至少尊重选定的互操作者。

有什么想法吗?

dar*_*rda 4

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

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

  • VSCode 似乎使用它启动的 venv。如果您打开终端,激活 venv 并从 venv 内部启动代码,git 将使用激活的 venv。 (2认同)