You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Husky V9问题:Python钩子提示command not found,PATH配置无效

解决Husky V9升级后Python钩子"command not found"问题

核心问题原因

Husky V9调整了钩子的执行环境初始化逻辑,旧版本自动继承系统路径的机制不再生效,加上你在init.sh里配置的Python路径格式错误(Windows下不能用类Unix的~/python写法),导致钩子无法找到Python命令。


分步解决方案

1. 修正.config/husky/init.sh的Python路径配置

Windows下Python实际路径是C:\Program Files\python,因路径含空格,需用引号包裹并适配shell格式:

  • 若用Git Bash执行钩子,路径写成/c/Program Files/python
  • 若用Cmd/PowerShell,路径写成"C:\Program Files\python"

修改后的init.sh示例:

# .config/husky/init.sh
# 将Python路径加入环境变量
PATH="$PATH:/c/Program Files/python"
# 针对Cmd/PowerShell的写法(若Husky用Cmd执行)
# set PATH=%PATH%;"C:\Program Files\python"

注意:替换为你实际的Python安装路径,比如可能是C:\Program Files\Python312。

2. 直接在钩子脚本里指定Python完整路径

如果路径配置仍不生效,直接在钩子调用时写全Python可执行文件路径:
比如原钩子命令是python scripts/pre-commit-check.py,改成:

"c:/Program Files/python/python.exe" scripts/pre-commit-check.py

3. 验证钩子执行环境的PATH变量

在钩子脚本开头添加PATH输出,确认Python路径是否加载:

# 在.husky/pre-commit开头添加
echo $PATH
# 执行测试命令
npx husky run .husky/pre-commit

查看输出的PATH是否包含你的Python安装路径,若没有,检查init.sh是否被Husky正确读取(V9会自动加载.config/husky/init.sh)。

4. 兼容多开发者环境的方案

避免硬编码绝对路径,让开发者配置环境变量:

  • 要求所有开发者在本地设置PYTHON_PATH环境变量,指向自身Python安装目录
  • 修改init.sh为:
PATH="$PATH:$PYTHON_PATH"

内容的提问来源于stack exchange,提问作者RedGoldPhoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:37:35