检查 --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
.
在我的 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
.