You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决subprocess.CalledProcessError: ninja返回非零退出状态1错误

解决TRELLIS-3D编译时tensorview头文件缺失及ninja报错问题

核心问题定位

subprocess.CalledProcessError: Command '['ninja']' returned non-zero exit status 1 本质是编译阶段找不到tensorview头文件,导致ninja编译流程中断。结合你的CUDA 12.5、Python 3.11环境,按以下步骤逐一排查:

1. 确保tensorview依赖正确安装(优先处理)

TRELLIS-3D通常依赖MIT Han Lab的tensorview库,直接pip安装的版本可能与CUDA 12.5不兼容,建议从源码编译安装:

# 克隆tensorview源码
git clone https://github.com/mit-han-lab/tensorview.git
cd tensorview
# 编译并安装适配CUDA的版本
python setup.py install --cuda

如果项目将tensorview作为子模块管理,先拉取完整子模块:

cd TRELLIS-3D项目根目录
git submodule update --init --recursive

2. 强制指定头文件路径

如果安装后仍提示头文件缺失,手动将tensorview的include目录添加到编译路径:

# 查找tensorview的include目录路径
python -c "import tensorview; print(tensorview.get_include())"
# 设置环境变量
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/上面输出的路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/上面输出的路径

也可以修改TRELLIS-3D的setup.py,在扩展模块的include_dirs中添加tensorview.get_include():

from setuptools import setup, Extension
import tensorview

ext_modules = [
    Extension(
        # ... 原有配置
        include_dirs=[
            # ... 原有路径
            tensorview.get_include(),
        ],
        # ... 原有配置
    )
]

3. 适配CUDA 12.5编译配置

CUDA 12.5对编译架构和标志有更新,检查项目的CMakeLists.txt或编译脚本:

  • 确认CUDA架构参数匹配你的显卡算力,比如针对RTX 30/40系列添加-arch=sm_86,RTX 20系列添加-arch=sm_75;
  • 确保CUDA_HOME环境变量指向正确版本:
export CUDA_HOME=/usr/local/cuda-12.5
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

4. 更新ninja并清理缓存重新编译

旧版本ninja可能与CUDA 12.5不兼容,先更新ninja:

pip install ninja --upgrade
# 或者用系统包管理器(Ubuntu示例)
sudo apt install ninja-build

清理之前的编译缓存,避免残留错误:

cd TRELLIS-3D项目根目录
rm -rf build/ dist/ *.egg-info cmake-build/
pip uninstall -y trellis-3d
# 重新执行编译安装
python setup.py install
# 或者用开发模式安装
pip install -e .

内容的提问来源于stack exchange,提问作者Team2 Research

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:05:04