Windows环境下使用uv与pyproject.toml安装CUDA版PyTorch 2.1.0+cu121失败,始终安装CPU版本的解决方法咨询
Windows环境下使用uv与pyproject.toml安装CUDA版PyTorch 2.1.0+cu121失败,始终安装CPU版本的解决方法咨询
看起来你已经做了不少尝试,但uv在解析PyTorch的CUDA版本依赖时,还是优先拉取了CPU版。我帮你分析下问题所在,然后给出具体的配置调整方案:
问题根源
你在[tool.uv.sources]里的torch配置虽然指定了索引和平台标记,但没有明确绑定版本,导致uv可能还是从默认PyPI源拉取了CPU版的torch==2.1.0。另外,需要确保平台标记和索引的关联逻辑被uv正确识别。
具体修复步骤
1. 清理现有环境(避免旧依赖干扰)
首先执行清理命令,彻底移除已安装的CPU版PyTorch:
uv sync --clean
2. 修改pyproject.toml的关键配置
调整[tool.uv.sources]中的torch配置,明确指定Windows平台下从CUDA索引拉取对应版本:
[project] name = "transformerpractice" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.10" dependencies = [ "en-core-web-sm", "ko-core-news-sm", "openpyxl>=3.1.5", "pandas>=2.3.3", "spacy>=3.8.8", "torchtext==0.16.0", "torch==2.1.0", # 保持原版本不变 ] [tool.uv.sources] en-core-web-sm = { url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0.tar.gz" } ko-core-news-sm = { path = "tokenizer/ko_core_news_sm-3.8.0-py3-none-any.whl" } # 重点修改这里的torch配置 torch = [ { version = "2.1.0", index = "pytorch-cu121", marker = "sys_platform == 'win_amd64'" }, { version = "2.1.0", marker = "sys_platform != 'win_amd64'" } ] [[tool.uv.index]] name = "pytorch-cu121" url = "https://download.pytorch.org/whl/cu121" explicit = false
3. 重新同步依赖
运行同步命令,让uv拉取CUDA版PyTorch:
uv sync
4. 验证安装结果
在Python环境中执行以下代码:
import torch print(torch.__version__) print(torch.version.cuda) print(torch.cuda.is_available())
如果配置正确,输出应该是:
2.1.0+cu121 12.1 True
额外注意事项
- 确保你的Windows系统已安装CUDA Toolkit 12.1(和PyTorch索引的cu121对应),否则
torch.cuda.is_available()会返回False,但torch.version.cuda仍会显示12.1 - 检查uv版本:如果是旧版本(比如v0.1.x),可能对
tool.uv.sources的标记支持不完善,建议更新到最新版:uv self update torchtext==0.16.0和torch==2.1.0的版本匹配是正确的,不用修改
这样调整后,uv就能正确识别Windows平台的需求,从PyTorch的CUDA专属索引拉取对应的2.1.0+cu121版本了。




