预提交 x VSCode: env: python3.9: 没有那个文件或目录

pre-commit x VSCode: env: python3.9: No such file or directory

我在代码中使用 pre-commit 到 运行 black flake8isort

I 运行 pre-commit install 并且正如预期的那样它创建了 .git/hooks/pre-commit 开始像:

#!/usr/bin/env python3.9
# File generated by pre-commit: https://pre-commit.com
# ID: 138fd403232d2ddd5efb44317e38bf03
import os
import sys
...

钩子在终端中工作正常:

$ git commit -am "remove commented block"
isort....................................................................Passed
black....................................................................Passed
flake8...................................................................Passed
[main f30007d] remove commented block
 1 file changed, 4 deletions(-)

但是 运行从 VSCode 的源代码控制面板中使用它会产生错误(命令输出):

> git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file -
env: python3.9: No such file or directory

不确定那是从哪里来的。此外(虽然不确定是否重要)我再次检查:终端的 python 和 VSCode 的选定 Python 解释器都指向相同的 /Users/victor/.pyenv/shims/python

执行 git 命令时,pyenv 未被 VSCode 的源控制面板加载似乎是一个问题。

我尝试将一些东西(如 $(pyenv init -))移动到早期的 zsh 配置文件中,如 .zshenv,但这没有帮助。

最后指定完整路径搞定了

#!/usr/bin/env /Users/victor/.pyenv/shims/python3.9
# File generated by pre-commit: https://pre-commit.com
# ID: 138fd403232d2ddd5efb44317e38bf03
import os
import sys
...