首页 > 解决方案 > 预提交x VSCode:env:python3.9:没有这样的文件或目录

问题描述

pre-commit用来运行black flake8和运行isort我的代码。

我跑了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

标签: pythongitvisual-studio-codepre-commitpre-commit.com

解决方案


执行命令时似乎pyenv没有被 VSCode 的源代码控制面板加载的问题。git

我尝试将一些东西(如$(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
...

推荐阅读