【笔记】解决 “AssertionError: Torch not compiled with CUDA enabled“ 错误
【笔记】解决 "AssertionError: Torch not compiled with CUDA enabled" 错误的完整指南
问题背景
在使用 ComfyUI 或其他基于 PyTorch 的深度学习框架时,经常会遇到 CUDA 相关的错误。其中最常见的就是 "AssertionError: Torch not compiled with CUDA enabled" 错误。这个错误通常发生在安装某些节点或依赖后,导致 PyTorch 无法正确识别和使用 GPU 加速。
报错示例
当启动 ComfyUI 时,可能会看到以下完整的错误堆栈信息:

Traceback (most recent call last):File "H:\PythonProjects1\Win_ComfyUI\main.py", line 150, in <module>import executionFile "H:\PythonProjects1\Win_ComfyUI\execution.py", line 15, in <module>import comfy.model_managementFile "H:\PythonProjects1\Win_ComfyUI\comfy\model_management.py", line 237, in <module>total_vram = get_total_memory(get_torch_device()) / (1024 * 1024)^^^^^^^^^^^^^^^^^^File "H:\PythonProjects1\Win_ComfyUI\comfy\model_management.py", line 187, in get_torch_devicereturn torch.device(torch.cuda.current_device())^^^^^^^^^^^^^^^^^^^^^^^^^^^File "H:\PythonProjects1\Win_ComfyUI\.venv\Lib\site-packages\torch\cuda\__init__.py", line 1069, in current_device_lazy_init()File "H:\PythonProjects1\Win_ComfyUI\.venv\Lib\site-packages\torch\cuda\__init__.py", line 403, in _lazy_initraise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
问题分析
这个错误的根本原因是:
-
PyTorch 版本问题:安装的 PyTorch 版本没有编译 CUDA 支持,或者安装的是 CPU-only 版本
-
依赖冲突:新安装的节点或依赖包可能与现有的 PyTorch 版本不兼容,导致 PyTorch 被错误地替换为 CPU 版本
-
版本不匹配:torch、torchvision、torchaudio 三个包的版本不兼容,或者与系统的 CUDA 版本不匹配
核心机制:节点依赖触发 pip 静默降级 PyTorch
你的环境原本是健康的:PyTorch 已正确安装为 CUDA 版本(如 2.9.0+cu128),可通过 torch.cuda.is_available() 验证。
但当我们执行或程序自动执行类似操作时:
pip install -r custom_nodes/some_node/requirements.txt
如果该节点的 requirements.txt 中包含以下任意一行(无论是否带版本号):
torch
torch>=2.0.0
torch==2.9.0
torchvision
torchaudio
且未指定 PyTorch 官方 CUDA 源(如 --index-url https://download.pytorch.org/whl/cu128),pip 就会:
- 从默认源(PyPI)解析这些包;
- PyPI 上的
torch、torchvision、torchaudio均为 CPU-only 构建(无+cuXXX后缀); - 为满足依赖一致性,pip 强制卸载你当前的 CUDA 版本,并安装 PyPI 上的 CPU 版本;
- 整个过程完全静默,无任何警告或确认。
💥 关键结论:
只要requirements.txt中显式声明了torch、torchvision或torchaudio(哪怕只是torch),就极可能触发降级。
这不是节点作者的错,而是 pip 依赖解析机制与 PyTorch 多源分发策略共同导致的“陷阱”。
结果:torch.__version__ 从 2.9.0+cu128 变成 2.9.0,GPU 支持“凭空消失”。
解决方案
步骤 1:确认当前 PyTorch 版本
首先,查看及回顾当前安装的 PyTorch 版本和 CUDA 相关信息:
pip show torch
示例输出:
Name: torch
Version: 2.9.0
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org
Author:
Author-email: PyTorch Team <packages@pytorch.org>
License: BSD-3-Clause
Location: H:\PythonProjects1\Win_ComfyUI\.venv\Lib\site-packages
Requires: filelock, fsspec, jinja2, networkx, setuptools, sympy, typing-extensions
Required-by: kornia, spandrel, torchaudio, torchsde, torchvision
但没有 +cuXXX 后缀(如 2.9.0+cu128),说明当前被安装的是 CPU-only 版本。
✅ 正确的 CUDA 版本应显示为:
torch-2.9.0+cu128
步骤 2:获取官方安装命令
开始使用
访问PyTorch 官方网站,根据我们的系统配置获取正确的安装命令。
官方网站通常会提供类似这样的命令:

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128
步骤 3:修改安装命令(推荐)
为了避免后续依赖问题,建议同时安装 torchaudio 以匹配安装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 --force-reinstall
💡 强烈建议在AI生成式项目中同时安装 torch
torchvision和torchaudio 三件套,避免后续因依赖安装指定不一致再次触发问题。
如果需要指定具体版本:
pip install torch==2.9.0 torchvision==0.24.0 torchaudio==2.9.0 --index-url https://download.pytorch.org/whl/cu128 --force-reinstall
步骤 4:强制重装
执行修改后的安装命令进行强制重装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 --force-reinstall
--force-reinstall 可确保彻底替换旧版本,避免残留冲突。
⚠️ 注意:安装包较大(约 2.8GB),请确保网络稳定。国内用户可考虑使用镜像源(如清华源)配合
--trusted-host,但 PyTorch 官方 CUDA 包通常必须从官方 index-url 安装。
安装过程中会看到类似以下的输出:
Looking in indexes: https://download.pytorch.org/whl/cu128, https://pypi.ngc.nvidia.com
Collecting torchDownloading https://download.pytorch.org/whl/cu128/torch-2.9.0%2Bcu128-cp312-cp312-win_amd64.whl.metadata (29 kB)
Collecting torchvisionDownloading https://download.pytorch.org/whl/cu128/torchvision-0.24.0%2Bcu128-cp312-cp312-win_amd64.whl.metadata (6.1 kB)
Collecting torchaudioDownloading https://download.pytorch.org/whl/cu128/torchaudio-2.9.0%2Bcu128-cp312-cp312-win_amd64.whl.metadata (7.0 kB)
...
步骤 5:验证安装结果
验证PyTorch深度学习环境Torch和CUDA还有cuDNN是否正确配置的命令
创建一个 Python 脚本来验证 CUDA 是否正常工作:
import torch # 导入 PyTorch 库print("PyTorch 版本:", torch.__version__) # 打印 PyTorch 的版本号# 检查 CUDA 是否可用,并设置设备("cuda:0" 或 "cpu")
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print("设备:", device) # 打印当前使用的设备
print("CUDA 可用:", torch.cuda.is_available()) # 打印 CUDA 是否可用
print("cuDNN 已启用:", torch.backends.cudnn.enabled) # 打印 cuDNN 是否已启用# 打印 PyTorch 支持的 CUDA 和 cuDNN 版本
print("支持的 CUDA 版本:", torch.version.cuda)
print("cuDNN 版本:", torch.backends.cudnn.version())# 创建两个随机张量(默认在 CPU 上)
x = torch.rand(5, 3)
y = torch.rand(5, 3)# 将张量移动到指定设备(CPU 或 GPU)
x = x.to(device)
y = y.to(device)# 对张量进行逐元素相加
z = x + y# 打印结果
print("张量 z 的值:")
print(z) # 输出张量 z 的内容
如果一切正常,应该看到类似以下的输出:

PyTorch 版本:2.9.0+cu128
设备:cuda:0
CUDA 可用:True
cuDNN 已启用:True
支持的 CUDA 版本:12.8
cuDNN 版本:90200
张量 z 的值:
tensor([[1.2345, 0.6789, 1.0123],[0.4567, 1.3456, 0.8901],[1.1234, 0.5678, 1.2345],[0.7890, 1.4567, 0.9012],[1.3456, 0.8901, 1.1234]], device='cuda:0')
其他修复方法
方法 1:完全重新安装
如果上述方法无效,可以尝试完全重新安装:
# 卸载现有版本
pip uninstall torch torchvision torchaudio -y# 清理pip缓存
pip cache purge# 重新安装
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
方法 2:使用 --use-pep517 参数
在某些情况下,使用 PEP 517 构建系统可能有助于解决安装问题:
pip install --use-pep517 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
--use-pep517 参数说明:
- 告诉 pip 使用 PEP 517 标准来构建包
- 避免使用旧的 setuptools 构建工具可能导致的问题
- 适用于较新版本的 pip(21.3+)
- 当遇到某些包构建问题时特别有用
方法 3:使用 --user 参数(妥协方案,不建议)
如果我们没有管理员权限,可以使用 --user 参数将包安装到用户目录:
pip install --user torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
--user 参数说明:
- 将包安装到用户的 home 目录下
- 避免需要管理员权限
- 适用于共享系统或没有 sudo 权限的环境
- 可能需要配置 PATH 环境变量
- 可能造成路径处理混乱
预防措施
预防再次踩坑:
-
一次性装好三件套,即使暂时用不到 torchaudio;
-
安装新节点前,先读它的 requirements.txt:
- 把 torch 、 torchvision 、 torchaudio 三行 等会影响 CUDA 版本的行 注释或删除;
- 若必须保留,请写成与已装版本完全一致的 带 +cuXXX 版本号,并附加 `--index-url https://download.pytorch.org/whl/cu128`参数;
-
用虚拟环境隔离且定期备份:
- python -m venv .venv
- pip freeze > comfyui_cu121_backup.txt
-
不在虚拟环境里混用 --user 参数。
一句话总结
装节点前不排查 requirements.txt,CUDA 版 PyTorch 就可能被静默降级;一旦报错,用官方 CUDA 源强制重装三件套即可秒恢复。
常见问题解答
Q1:为什么官方命令不包含 torchaudio?
A1:官方命令通常只包含最基本的 torch 和 torchvision。但对于 ComfyUI 等应用,torchaudio 也是必需的依赖包。同时安装可以避免后续单独安装时可能出现的版本冲突。
Q2:什么时候需要使用 --force-reinstall 参数?
A2:当我们怀疑现有安装有问题,或者想要完全重新安装时使用。这个参数会强制重新下载和安装所有指定的包,覆盖现有版本。
Q3:如何选择正确的 CUDA 版本?
A3:可以通过以下命令查看系统支持的 CUDA 版本:
nvidia-smi
然后在 PyTorch 官网选择对应的 CUDA 版本。
但仍需严格查询如 xformers 、triton-windows、nunchaku 等等,对 torch 和CUDA 版本有严格对齐要求的包的兼容性要求。
facebookresearch/xformers: Hackable and optimized Transformers building blocks, supporting a composable construction.
woct0rdho/triton-windows:Triton 语言和编译器的分支,用于 Windows 支持和易于安装
发布双节棍 v1.0.2 ·双节棍技术/双节棍
Q4:如果我的 GPU 不支持最新的 CUDA 版本怎么办?
A4:最新的未必是最兼容的!我们需要选择与自己的 GPU 和项目所有依赖兼容的 CUDA 版本。可以在 NVIDIA 官网上查询我们的 GPU 支持的最高 CUDA 版本。但最好是选择 与项目中所有包 兼容的版本。
总结
- 报错
Torch not compiled with CUDA enabled的本质是:PyTorch 安装了 CPU-only 版本,但代码尝试调用 GPU。 - 解决方法:从 PyTorch 官方安装带 CUDA 支持的版本(如 cu128)。
- 关键操作:使用
--index-url指定 CUDA wheel 源,并一次性安装 torch/torchvision/torchaudio。 - 验证环节不可省略,确保
torch.cuda.is_available()返回True。
解决 "AssertionError: Torch not compiled with CUDA enabled" 错误的关键在于:
- 使用官方安装命令:确保从 PyTorch 官网获取正确的安装命令,特殊场景下稍加修改
- 保持版本兼容:确保 torch、torchvision、torchaudio 、formers 、triton-windows、nunchaku 等版本匹配
- 强制重装:在遇到依赖冲突时,使用 --force-reinstall 参数
- 验证安装:安装后使用验证脚本来确认 CUDA 正常工作
- 兼顾其他包:除了列举的包外,还需要排查和兼顾其他依赖 CUDA 编译的依赖
通过以上步骤,我们应该能够成功解决 PyTorch 的 CUDA 支持问题,让 ComfyUI 和其他深度学习应用能够充分利用 GPU 的计算能力。
记住,预防胜于治疗。定期备份环境、使用虚拟环境、注意版本兼容性,这些好习惯可以帮助我们避免很多依赖问题。
Date: 2025 年 11 月 5 日Code: https://github.com/pytorch/pytorchReference: https://pytorch.org/get-started/locally/




