`pip install -U pip -r requirements.txt` 是否在安装要求之前升级 pip?

Does `pip install -U pip -r requirements.txt` upgrade pip before installing the requirements?

使用以下变体设置 Python 虚拟环境似乎是常见的做法:

python -m venv venv && source ./venv/bin/activate
python -m pip install -U pip -r requirements.txt

我希望上面的命令做的是:

  1. 先升级pip
  2. 运行 安装 requirements.txt
  3. 中的软件包

然而,实际情况似乎是:

  1. 收集所有包,包括 pip
  2. 的最新版本
  3. 一起安装它们
    • pip 的 original/outdated 版本是实际运行安装的
    • 并且 pip 的新版本 在执行此命令后才使用

问题

  1. 是否可以在一个命令中进行 pip 升级,然后安装需求文件?
    • 这会推断出任何特定的好处吗?
  2. 我应该切换到以下吗?
python -m venv venv && source ./venv/bin/activate
python -m pip install -U pip
python -m pip install -r requirements.txt
  1. 安装需求文件的最佳方法是什么?
    • 我有时会看到人 installing/upgrading wheelsetuptools

您的问题的答案是:

  1. 没有。 pip 目前不将自己视为特殊依赖项,因此它不知道先安装然后执行自己,这是克服您观察到的问题需要做的事情。
  2. 在单独的步骤中更新 pip 确实是推荐的继续方式。

您可能会不时看到 pip 发出一条消息,告知有更新版本可用。如果您使用过时的 pip.

从 python 创建它们,这种情况会经常发生

我遇到了和你类似的情况,我需要先升级 pip 然后在一个有 20 台 PC 的实验室里安装一堆库。我所做的是将所有图书馆的名称写入 requirements.txt 文件,然后使用两个命令创建一个 .bat 文件:

`python -m pip install --upgrade pip`
`pip install -r requirements.txt`

第一个命令用于升级 pip,第二个命令用于安装 requirements.txt 文件中列出的所有库。