我想用setuptools
写一个setup.py
文件。我的包依赖于tensorflow
,但是有两个不同的pip包满足需求,tensorflow
和{tensorflow
放在我的setup(..., install_requires=["tensorflow"])
中,那么如果用户在他们的系统上安装了tensorflow-gpu
pip包,那么安装将失败。在
不能使用imp
模块进行检查(在这个答案中:How to check if a python module exists without importing it),因为不管用户安装了哪个pip包,模块的导入名称都是tensorflow
。那么setuptools(以及distutils)如何检测安装了哪个pip包呢?我已经查了一下资料来源,但找不到它检查的地方。在
*注意,我不打算接受黑客安装工具。我只想知道它使用什么方法来检测包,这样我就可以在我的setup.py
中使用相同的方法手动将install\u requires参数设置为正确的版本。(例如:Alternative dependencies (fall back) in setup.py)
我最近有一个类似的问题。你需要区分这两个TF。我对TF的了解还不够详细,但大部分代码应该是这样的:
相关问题 更多 >
编程相关推荐