VScode 里面应该安装 Python 和 C++ 的插件。
1. 第一个文件时 Cpp 配置文件 c_cpp_properties.json。(类似于CmakeList)
主要是 包含下面三个 include_path 头文件
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/home/smiao/anaconda3/envs/Gen_3DGS/lib/python3.8",
"/home/smiao/anaconda3/envs/Gen_3DGS/lib/python3.8/site-packages/torch/include/",
"/home/smiao/anaconda3/envs/Gen_3DGS/lib/python3.8/site-packages/torch/include/torch/csrc/api/include/"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
2. 对应的C++ 的简单代码,使用 PyBIND 将C++代码 转换成 Python 可以调用的 包:
#include <torch/extension.h>
torch::Tensor trilinear_interpolation(torch::Tensor feats, torch::Tensor point)
{
return feats;
}
PYBIND11_MODULE(TORCH_EXTENSION_NAME,m){
m.def("trilinear_interpolation",&trilinear_interpolation);
}
3. 编写 setup.py 代码将C++ 代码进行编译安装
from setuptools import setup
from torch.utils.cpp_extension import CppExtension, BuildExtension
setup(
name="cpp_tutorial", ## 安装的 库的名字
version='1.0',
# packages=['diff_gaussian_rasterization'],
ext_modules=[
CppExtension(
name='cpp_tutorial',
sources=['interpolat.cpp'] ## 对应的 Cpp 文件
)
],
cmdclass={
'build_ext': BuildExtension
}
)
有的 3DGS (mvsplat) 对于 Cuda 代码进行改动, 在setup.py 里面 加入了 package = [ ] 命令。 以我们上面为例,这就要求在 执行python 的环境当中 必须有一个名叫diff_gaussian_rasterization 的文件夹。 因此 必须要 先 cd 到 setup.py 所在的同级目录,然后进行安装。
4. 执行命令进行安装
pip install . ## 进入 setup.py 所在的同级目录,执行该目录
之后使用 pip list 可以查看安装的package