执行指定版本django-extensions安装命令时遇Reference is not a Tree错误求助
pip安装指定Git提交版本失败的原因分析
场景
正在进行《Antonio Mele - Django 4 by example》的书签项目,执行以下命令时出现错误:
pip install git+https://github.com/django-extensions/django-extensions.git@25a41d8a3ecb24c009c5f4cac6010a091a3c91c8
错误输出
Collecting git+https://github.com/django-extensions/django-extensions.git@25a41d8a3ecb24c009c5f4cac6010a091a3c91c8 Cloning https://github.com/django-extensions/django-extensions.git (to revision 25a41d8a3ecb24c009c5f4cac6010a091a3c91c8) to c:\users\lenovo\appdata\local\temp\pip-req-build-sm2evy1_ Running command git clone -q https://github.com/django-extensions/django-extensions.git 'C:\Users\LENOVO\AppData\Local\Temp\pip-req-build-sm2evy1_' Running command git checkout -q 25a41d8a3ecb24c009c5f4cac6010a091a3c91c8 fatal: reference is not a tree: 25a41d8a3ecb24c009c5f4cac6010a091a3c91c8 ERROR: Command errored out with exit status 128: git checkout -q 25a41d8a3ecb24c009c5f4cac6010a091a3c91c8 Check the logs for full command output.
此前执行类似命令安装其他依赖时无异常:
pip install git+https://github.com/python-social-auth/social-app-django.git@20fabcd7bd9a8a41910bc5c8ed1bd6ef2263b328
错误原因
核心问题是命令中指定的Git提交哈希25a41d8a3ecb24c009c5f4cac6010a091a3c91c8无效,具体可能的情况:
- 该哈希对应的提交在django-extensions仓库中不存在,可能是书籍印刷错误、手动输入时抄错字符。
- 仓库维护者对提交历史进行了改写(如变基、删除分支),导致该哈希被移除,无法通过公共仓库访问到。
对比之前成功的命令,20fabcd7bd9a8a41910bc5c8ed1bd6ef2263b328是social-app-django仓库中真实存在的提交哈希,因此能正常安装。
解决建议
- 核对书籍中给出的提交哈希是否正确,若存在印刷错误,修正哈希后重试。
- 改用django-extensions的官方版本号安装(如
pip install django-extensions==4.2.1,需匹配书籍对应的版本),版本号比提交哈希更稳定,不易因仓库历史变更失效。
内容的提问来源于stack exchange,提问作者خليل الأشول
相关产品推荐
相关产品推荐

