pipfile 不支持直接通过 `path` 字段指定本地仓库的分支;必须改用 `git` 协议配合 `file://` url 和 `ref` 参数,才能让 pipenv 克隆并检出指定分支。
在 Pipenv 的依赖管理中,path 字段仅用于指向本地已存在的、可直接 import 的 Python 包目录(即已 checkout 到目标分支的源码),它不感知 Git 分支信息——Pipenv 不会执行 git checkout 或解析 .git 状态。因此,若你希望 Pipfile 显式声明“使用本地仓库的某个特定分支”,必须将该路径“升格”为 Git 仓库地址,并通过 git + ref 方式声明。
✅ 正确写法(Pipfile):
[packages]
repository2 = {editable = true, extras = ["dev"], git = "file:///Users/name.surname/Projects/repository2", ref = "feature/my_bra
nch"}⚠️ 注意事项:
? 命令行等效操作(调试推荐):
pipenv install -e "git+file:///Users/name.surname/Projects/repository2@feature/my_branch#subdirectory=&egg=repository2[dev]"
提示:若仓库根目录非 Python 包根(例如包在 src/ 下),需添加 subdirectory=src 参数;#egg=... 用于显式指定包名和 extras。
? 总结:本地分支依赖 ≠ 本地路径依赖。当需要版本化、可复现地绑定某一分支时,请始终使用 git = "file://..." + ref = "..." 组合,而非 path = "..."。这既符合 Pipenv 的语义设计,也保证了团队协作与 CI 环境中锁文件(Pipfile.lock)的一致性。