Triton tcc.exe执行出错解决方案
在ComfyUI中使用wan2.2 animate 的角色替换和动作同步工作流的时候,一直遇到一个tcc.exe错误绕不过去。
花了好长时间才解决,有必要记录一下。
错误信息如下:
Command '['D:\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\runtime\\tcc\\tcc.exe', 'C:\\Users\\amd\\AppData\\Local\\Temp\\tmprg_0shad\\cuda_utils.c', '-O3', '-shared', '-Wno-psabi', '-o', 'C:\\Users\\amd\\AppData\\Local\\Temp\\tmprg_0shad\\cuda_utils.cp313-win_amd64.pyd', '-fPIC', '-D_Py_USE_GCC_BUILTIN_ATOMICS', '-lcuda', '-lpython313', '-LD:\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\backends\\nvidia\\lib', '-LD:\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\backends\\nvidia\\lib\\x64', '-ID:\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\backends\\nvidia\\include', '-ID:\\ComfyUI_windows_portable\\python_embeded\\Lib\\site-packages\\triton\\backends\\nvidia\\include', '-IC:\\Users\\amd\\AppData\\Local\\Temp\\tmprg_0shad', '-ID:\\ComfyUI_windows_portable\\python_embeded\\Include']' returned non-zero exit status 1.
刚开始一直怀疑是版本问题,排查了Python版本,Torch版本,Cuda+Cudnn版本,Triton版本。
花费了大量时间来检查各种组合,始终报这个错误。中间也尝试过把这个问题扔给GPT,但是它说了一大堆,没有击中问题的核心。
我多次重启上下文之后,它似乎说到了重点:
这个报错的核心是Triton 用 tcc.exe 在 Windows 上即时编译 cuda_utils.c 时链接失败,命令里能看到它要链接 -lcuda 和 -lpython313,而你的 ComfyUI 是“嵌入式 Python 3.13(cp313)”。在 Windows 上,这通常有几个致命点:
症结定位(从高概率到低概率)
- 缺少
python313.lib(开发版 .lib)- 嵌入式/便携版 Python 通常没有
libs/python313.lib,导致-lpython313链接失败。
- 嵌入式/便携版 Python 通常没有
- CUDA 开发库未就绪
- 需要完整 CUDA Toolkit(不仅是驱动),并且
cuda.lib必须在LIB路径中;相关 DLL(如nvrtc64_xxx_0.dll)需在PATH中。
- 需要完整 CUDA Toolkit(不仅是驱动),并且
- PyTorch/Triton 与 Python 3.13 的组合不成熟
- 目前很多 Windows 预编译轮子优先支持 3.10/3.11(甚至 3.12),3.13 还在跟进。你这套组合强行触发了 Triton 的 tcc 链路。
- 传入了不适配 Windows 的编译参数
- 命令里有
-fPIC(典型 *nix 旗标),在 Windows 下无意义甚至报错;这通常是某版本 Triton/构建链路的兼容性问题。
- 命令里有
从后面可以知道,它说的的第一点是正确的。
但是它给的解决方案却并不合适,按他的路走又是一条漫长的不归路。
它的解决方案是让我安装Python3.10版,而我的ComfyUI是Python3.13。
如果要修改Python版本,会导致一堆预装的依赖出现问题,全部重装绝对是一个大工程。
但是谜底还没解开之前,它这个思路有看起来很有道理。
犹豫不决的时候突然想到,有问题应该去Github上的对应项目上找答案才比较靠谱。
经过分析,上面的错误来自 ComfyUI-WanVideoWrapper 这个插件。
通过项目的issues 终于找到了轻松解决问题的方法。
这个问题的关键就是因为ComfyUI使用了便携版的Python,缺少了include和libs这两个文件夹。只要安装完整版的Python并拷贝这两个文件夹到ComfyUI的python_embeded文件夹里面就可以了。
具体的说明和文件下载,可以参考下面两个地址
WanVideoWrapper issues: