首页 > 解决方案 > 检查在 pip 安装期间是否通过了 --upgrade

问题描述

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

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

# setup.py

setup(...)

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

因此,如果我运行pip install package-nameif 语句将返回 false,但如果我运行pip install --upgrade package-nameif 语句将返回 true,并且其中的代码将运行。

标签: pythongithubargumentssetup.py

解决方案


我相信这是不可能的。(这是故意的。)

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


推荐阅读