setup.py 代码在 `pip install` 时运行,但在 `python -m build` 时不运行
我有一些代码在一个叫做 setup.py 的文件里,这段代码是用来检查一个必须手动安装的第三方SDK,只有在安装应用程序之前才需要安装这个SDK:
import sys
from setuptools import setup
# ---- BEGIN SDK CHECK
try:
import pyzed.sl
except ImportError:
print("ERROR: You must manually install the ZED Python SDK first.")
sys.exit(1)
zed_version = [int(p) for p in pyzed.sl.Camera.get_sdk_version().split(".")]
if zed_version < [4,0,8]:
print("ERROR: ZED SDK 4.0.8 or higher is required, you must update the ZED SDK first.")
sys.exit(1)
# ---- END SDK CHECK
setup(...)
不过,我只希望这段代码在安装包的时候执行,而不是在构建包的源文件或轮子文件的时候执行。也就是说:
- 我希望它在运行
pip install ...
的时候执行。 - 我不希望它在运行
python -m build -x ...
的时候执行。
有没有什么办法可以做到这一点?比如说,有没有办法判断 setup.py 是通过 pip install
调用的,而不是通过 python -m build
调用的?或者有没有其他方法可以只在安装时进行检查?
1 个回答
-1
确保你安装了构建软件包所需的Python开发库。
在基于Debian的系统,比如Ubuntu等,你需要单独安装一个叫“python-dev”的东西:https://packages.ubuntu.com/search?keywords=python-dev
而在基于RPM的系统中,它叫“python-devel”。
https://rpmfind.net/linux/rpm2html/search.php?query=python-devel
希望这对你有帮助。