在 requirements.txt 中强制重新安装 pip

Posted

技术标签:

【中文标题】在 requirements.txt 中强制重新安装 pip【英文标题】:pip force reinstall in requirements.txt 【发布时间】:2018-11-10 00:14:54 【问题描述】:

我有一个 requirements.txt 文件,其中有一些 git+ 引用。出于某种原因,我想总是重新安装这些,即使我进行了更改并修改版本并将其推送到我的 github 存储库,pip 说要求已经满足并且不安装。

这是我的 requirements.txt 文件的一部分:-

Django==1.10
git+https://github.com/myaccount/myrepo.git@master#egg=some_egg

我不想重新安装 requirements.txt 文件中的所有内容。只有 git+ 要求。

我试过这个:-

git+https://github.com/myaccount/myrepo.git@master#egg=some_egg --install-option="--upgrade --ignore-installed --force-reinstall"

但以上选项均无效。

【问题讨论】:

最简单的方法就是运行pip install --upgrade -r requirements.txt。这将重新安装 git 依赖项。 好的。但我正在使用 AWS Elasticbeanstalk,无法找到覆盖 pip install 命令执行的方法。有什么想法吗? 你可以先卸载那些包。见this answer 【参考方案1】:

问题是你没有告诉pip你在git里有什么版本:

git+https://github.com/myaccount/myrepo.git@master#egg=some_egg

对于 VCS URLs pip 不会查看 repo 来查找版本,它只查看 URL:

git+https://github.com/myaccount/myrepo.git@master#egg=some_egg-version

示例:

git+https://github.com/myaccount/myrepo.git@master#egg=package-1.0.8

当您将新版本推送到 Github 时,请使用新版本更新您的 requirements.txt 并运行 pip install -r requirements.txt -U

【讨论】:

【参考方案2】:

可能一种选择是以可编辑模式安装包,例如

Django==1.10
-e git+https://github.com/myaccount/myrepo.git@master#egg=some_egg

【讨论】:

【参考方案3】:

我用这个:

pip install -r requirements.txt

你可以使用类似的东西:

pip install -r requirements.txt --no-index --find-links

--no-index - 忽略包索引(只查看 --find-links 网址)。

-f, --find-links <URL> - 如果是 html 文件的 URL 或路径,则解析指向档案的链接

【讨论】:

以上是关于在 requirements.txt 中强制重新安装 pip的主要内容,如果未能解决你的问题,请参考以下文章

Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt

原 requirements.txt 介绍 & 快捷生成

转载如何自动生成和安装requirements.txt依赖

Ubuntu 下生成 python 环境安装文件 requirements.txt

python中的requirements.txt文件的生成和使用

requirements 操作