如何让pip仅强制重新安装requirements.txt中的git+依赖包?
解决pip不重新安装git+格式依赖的问题
我之前也踩过这个坑!当你更新了GitHub仓库的代码后,pip会默认对比本地已安装包的提交哈希和仓库对应分支的哈希,如果本地已经存在匹配的(哪怕你后来推了新代码),就会提示“依赖已满足”。之前你用的--install-option方法无效,是因为这些参数是传给包的setup.py的,而不是pip本身的命令参数,所以根本起不到强制重装的作用。
下面分享几个亲测有效的解决办法:
方法一:单独重装指定的git依赖
直接用pip的--force-reinstall参数配合--no-deps(避免重装该包的依赖),指定目标git地址即可:
pip install --force-reinstall --no-deps git+https://github.com/myaccount/myrepo.git@master#egg=some_egg
这个命令会忽略本地已安装的版本,重新从仓库拉取最新代码安装。
方法二:批量重装requirements.txt中所有git+依赖
如果你的requirements.txt里有多个git格式的依赖,不用逐个手动输入,用命令行工具过滤后批量处理:
grep '^git+' requirements.txt | xargs pip install --force-reinstall --no-deps
这条命令会先筛选出所有以git+开头的依赖行,然后逐个执行重装操作,非常高效。
额外提示
如果希望每次安装时都自动拉取git仓库的最新代码,也可以用--upgrade参数让pip主动检查仓库的最新提交哈希:
pip install --upgrade git+https://github.com/myaccount/myrepo.git@master#egg=some_egg
不过这个命令会先对比本地已安装包的哈希和仓库当前分支的哈希,只有不一致时才会更新;而--force-reinstall则是不管哈希是否匹配,都会重新安装一遍。
内容的提问来源于stack exchange,提问作者Abhi N
相关产品推荐
相关产品推荐

