运行git-hg clone报错找不到>=4.6版mercurial模块如何排查
git-hg 解释器检测逻辑
git-hg 启动时会按固定顺序查找符合要求的Python解释器,校验规则非常直接:
- 第一优先级读取当前执行环境的
PYTHON环境变量值,要求值必须是Python可执行文件的完整路径 - 对拿到的解释器路径,直接执行命令校验3项内容:解释器可正常启动、可成功导入
mercurial模块、mercurial模块版本≥4.6,校验命令等价于<python路径> -c "import mercurial; assert tuple(int(x) for x in mercurial.__version__.split('.')[:2]) >= (4,6)" - 如果未读取到
PYTHON环境变量,会遍历系统PATH下所有名为python、python3的可执行文件,逐个做上述校验,全部校验失败就抛出你遇到的报错
注意:git-hg 读取的是执行
git-hg命令的当前终端会话的环境变量,不是系统面板里配置后未更新的旧会话变量。
分步解决方法
- 先在你执行
git-hg clone的同一个终端窗口,校验环境变量是否生效:- Windows cmd 执行
echo %PYTHON% - Windows PowerShell 执行
$env:PYTHON - Linux/macOS 执行
echo $PYTHON
如果返回值为空或者不是你预期的Python路径,关闭所有终端窗口重开后重试,也可以在当前会话临时指定变量:Windows 执行set PYTHON=你的python.exe完整路径,Linux/macOS 执行export PYTHON=你的python二进制文件完整路径
- Windows cmd 执行
- 校验指定Python的mercurial模块是否符合要求:在同终端执行
"%PYTHON%" -m pip show mercurial(Linux/macOS 执行$PYTHON -m pip show mercurial),查看返回的Version字段值,如果低于4.6或者提示未安装包,直接执行"%PYTHON%" -m pip install "mercurial>=4.6"安装对应版本即可 - 检查
PYTHON变量的路径格式:必须写到可执行文件本身,不能只填Python安装目录,比如正确路径是C:\Python39\python.exe,错误路径是C:\Python39\ - 多Python环境用户注意:必须用你指定给
PYTHON变量的那个解释器对应的pip安装mercurial,用-m pip的方式安装可以避免把包装到其他Python环境里导致检测不到
内容的提问来源于stack exchange,提问作者Brad
相关产品推荐
相关产品推荐

