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

Windows下Beeware Briefcase执行briefcase new时Git SHA解析失败

解决Beeware Briefcase briefcase new 执行时的SHA解析错误

问题背景

  • 环境:Windows + Powershell,通过pyenv管理Python 3.8.9,已创建虚拟环境并安装briefcase,Git已关联GitHub仓库
  • 执行briefcase new完成交互配置后,抛出SHA解析失败的ValueError,错误回溯如下:
Traceback (most recent call last):
  File "C:\~\.pyenv\pyenv-win\versions\3.8.9\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\~\.pyenv\pyenv-win\versions\3.8.9\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\~\CodeProjects\beeware-tutorial\.venv\Scripts\briefcase.exe\__main__.py", line 7, in <module>
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\briefcase\__main__.py", line 14, in main
    command(**options)
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\briefcase\commands\new.py", line 537, in __call__
    return self.new_app(template=template, **options)
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\briefcase\commands\new.py", line 488, in new_app
    cached_template = self.update_cookiecutter_cache(
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\briefcase\commands\base.py", line 569, in update_cookiecutter_cache
    f"Using existing template (sha {head.commit.hexsha}, "
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\refs\symbolic.py", line 217, in _get_commit
    obj = self._get_object()
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\refs\symbolic.py", line 210, in _get_object
    return Object.new_from_sha(self.repo, hex_to_bin(self.dereference_recursive(self.repo, self.path)))
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\objects\base.py", line 85, in new_from_sha
    oinfo = repo.odb.info(sha1)
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\db.py", line 43, in info
    hexsha, typename, size = self._git.get_object_header(bin_to_hex(binsha))
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\cmd.py", line 1253, in get_object_header
    return self.__get_object_header(cmd, ref)
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\cmd.py", line 1240, in __get_object_header
    return self._parse_object_header(cmd.stdout.readline())
  File "c:\~\codeprojects\beeware-tutorial\.venv\lib\site-packages\git\cmd.py", line 1198, in _parse_object_header
    raise ValueError("SHA could not be resolved, git returned: %r" % (header_line.strip()))
ValueError: SHA could not be resolved, git returned: b''

解决方案

1. 清理Briefcase模板缓存

Briefcase会缓存cookiecutter模板,缓存损坏可能导致SHA解析失败:

  • 找到Windows下缓存路径:C:\Users\<你的用户名>\AppData\Local\briefcase\Templates
  • 删除该目录下所有内容,重新执行briefcase new

2. 检查Git配置与仓库状态

  • 执行git config --list确认全局和项目级Git配置(用户信息、远程仓库)正确
  • 执行git status检查本地仓库是否处于干净状态,无未提交或冲突内容
  • 执行git pull拉取远程仓库最新内容

3. 重装依赖包

卸载并重新安装briefcase及相关Git依赖:

pip uninstall -y briefcase gitpython
pip install briefcase

4. 切换Python版本测试

尝试切换到3.9.x版本(Beeware支持的版本),排查版本兼容性问题:

pyenv install 3.9.13
pyenv local 3.9.13
# 重新创建虚拟环境并安装briefcase

内容的提问来源于stack exchange,提问作者bart.s

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:57:12