You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Setuptools让含TensorFlow依赖的Python库适配CPU/GPU版本?

解决TensorFlow CPU/GPU依赖互斥问题

方案1:拆分互斥可选依赖(推荐)

修改你的pyproject.toml,移除默认的tensorflow依赖,把CPU和GPU版本分别放到可选依赖组里:

[project]
name = "myLibrary"
version = "0.1.0"
dependencies = []

[project.optional-dependencies]
cpu = ["tensorflow >= 2.11.0"]
gpu = ["tensorflow-gpu >= 2.11.0"]

然后在项目的README或安装说明里明确告知用户:

  • 安装CPU版:pip install myLibrary[cpu]
  • 安装GPU版:pip install myLibrary[gpu]

这种方式从根源上避免了同时安装两个版本的问题,用户必须明确选择其中一种依赖。

方案2:利用依赖冲突强制替换(兼容默认安装)

如果想保留默认安装CPU版的体验,可以在GPU可选依赖里添加冲突约束,让pip自动替换默认的tensorflow:

[project]
name = "myLibrary"
version = "0.1.0"
dependencies = ["tensorflow >= 2.11.0"]

[project.optional-dependencies]
gpu = [
    "tensorflow-gpu >= 2.11.0",
    "tensorflow == 0.0.0"
]

当用户执行pip install myLibrary[gpu]时,pip会检测到版本冲突,优先选择tensorflow-gpu(因为它是显式指定的可选依赖),自动忽略默认的tensorflow。不过这个方法依赖pip的冲突解决逻辑,建议在不同pip版本下测试验证。

额外提醒

从TensorFlow 2.10开始,官方已经停止单独发布tensorflow-gpu包,GPU支持完全整合到了主tensorflow包中。只要用户的系统配置了兼容的CUDA和cuDNN环境,安装默认的tensorflow>=2.11.0就能自动启用GPU加速。如果你的目标用户都是用2.11+版本,完全可以只依赖tensorflow,然后在文档里说明GPU环境配置步骤,这样就不用处理两个包的互斥问题了。

内容的提问来源于stack exchange,提问作者TantrixRobotBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:58:13