如何在基于setuptools的pyproject.toml中安装仅CPU版本的PyTorch
如何在基于setuptools的pyproject.toml中安装仅CPU版本的PyTorch
嘿,我来帮你搞定这个问题!你说得没错,torch-cpu根本不是PyPI上的合法包,PyTorch的仅CPU版本得通过指定专属的包索引来安装,而且要适配setuptools的工作逻辑才行。我给你整理几个靠谱的方案:
方案1:安装时直接指定CPU专属索引(最简单直接)
因为setuptools最终还是依赖pip来解析和安装依赖,所以你可以在安装自己的项目时,给pip加上额外索引参数,强制它从PyTorch的CPU包源拉取:
pip install . --extra-index-url https://download.pytorch.org/whl/cpu
这样pip会优先从这个CPU专属索引找torch包,自然就会下载仅CPU的版本,不会碰CUDA相关的库。
方案2:在pyproject.toml中配置pip专属的额外索引(一劳永逸)
如果你想把配置固化到pyproject.toml里,让其他开发者安装时不用手动加参数,可以添加pip的工具专属配置(需要pip版本≥23.1):
[tool.pip] extra-index-url = ["https://download.pytorch.org/whl/cpu"]
或者更精准地只给torch指定索引(避免影响其他包):
[tool.pip.extra-index-url] torch = "https://download.pytorch.org/whl/cpu"
这样pip在解析依赖时,会自动用这个CPU索引来拉取torch,不用每次安装都手动加参数。
方案3:修复你之前尝试的uv配置
你之前用uv的配置没生效,大概率是索引的配置细节有问题。试试把配置改成这样:
[[tool.uv.index]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" [tool.uv.sources] torch = { index = "pytorch-cpu" }
然后运行uv install .,这样uv会明确知道要从你指定的CPU索引拉取torch,而不是默认的PyPI源(默认源里的torch是带CUDA的版本)。
最后要注意:别再写torch-cpu当依赖了,实际的包名还是torch,我们只是通过指定不同的索引来获取仅CPU的构建版本,所以你的dependencies里保持torch>=2.6就好。
备注:内容来源于stack exchange,提问作者Paagalpan
相关产品推荐
相关产品推荐

