python - 检查在 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-name
if 语句将返回 false,但如果我运行pip install --upgrade package-name
if 语句将返回 true,并且其中的代码将运行。
解决方案
我相信这是不可能的。(这是故意的。)
setup.py
运行时并不总是执行(最常见的pip install YourProject
是从预构建的轮子安装时的情况:不执行设置脚本,因为轮子甚至不包含设置脚本)。而当pip确实触发了 的执行时setup.py
,它是相当间接的,并且pip的参数不太可能被转发到setup.py
。我知道以某种方式让pip转发参数的一种方法setup.py
是(错误)使用pip的--global-option
。