Gaussiansplatting子模块编译
最近跑到一个华为做的一个关于高斯的项目,编译环境的时候遇到了不少坑,开个贴记录一下:
- 坑点1:Ninja在windows下的输出问题:
感觉这个问题也是老生常谈的问题了,不算什么坑,但要注意一下。在pytorch中关于调用ninja进行编译的时候,会通过捕获subprocess的输出先对ninja版本进行判断以确定环境中是否含有ninja(具体代码在Lib\site-packages\torch\utils\cpp_extension.py),然而在中文版的cmd中,代码的指令会由于编码的问题输出为乱码,导致触发except报错。
解决方法也很简单,修改command数组,把命令修改为能在gbk编码下成功获取版本号的命令:
第二种解决方法更加简单粗暴,直接在setup.py里面禁用ninja,适合ninja跑不通的情况:
坑点二:作者仓库里面缺少文件
这个坑可能是作者没有指定子git项目,因为在GaussianSplatting官方仓库中,这一块是递归指向另一个仓库,但在作者仓库里面这个文件夹就为空了。
解决方法,递归克隆官方仓库:git clone –recursive https://github.com/graphdeco-inria/gaussian-splatting.git
其次就是一些小问题了,大多都好解决,注意torch版本和cuda版本一致就行。