检查 --upgrade 在 pip 安装过程中是否通过

Check if --upgrade was passed during pip install

在我的 setup.py 文件中,我想检查是否在 pip install ... 中传递了 --upgrade,如果是,我想 运行 一些代码。

在此示例中,只有在 pip 安装期间传递 --upgrade 时才应打印“Hello World”,否则不会发生任何事情。

# setup.py

setup(...)

if "--upgrade was passed": # WHAT SHOULD I PUT HERE
  print("Hello World")

所以如果我 运行 pip install package-name if 语句会 return false,但是如果我 运行 pip install --upgrade package-name if 语句会 return true 并且其中的代码将 运行.

我认为这是不可能的。 (这是故意的。)

pip install YourProject 为 运行 时 setup.py 并不总是执行(最常见的情况是从 pre-built wheel:安装脚本不执行,因为 wheels 甚至不包含安装脚本)。而当 pip 确实触发了 setup.py 的执行时,它是相当间接的并且 pip 的参数不太可能被转发给setup.py。我知道以某种方式让 pip 将参数转发给 setup.py 的一种方法是(误)使用 pip's --global-option.