You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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.0torch==2.1.0的版本匹配是正确的,不用修改

这样调整后,uv就能正确识别Windows平台的需求,从PyTorch的CUDA专属索引拉取对应的2.1.0+cu121版本了。

火山引擎 最新活动