open-mmlab / mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
https://mmdetection3d.readthedocs.io/en/latest/
Apache License 2.0
5.26k stars 1.53k forks source link

[Bug] 在对v0.16.0进行pip install -v -e .编译时总是出错说找不到头文件 #3002

Open QilongWu2 opened 3 months ago

QilongWu2 commented 3 months ago

Prerequisite

Task

I'm using the official example scripts/configs for the officially supported tasks/models/datasets.

Branch

main branch https://github.com/open-mmlab/mmdetection3d

Environment

/mmdetection3d$ python3 mmdet3d/utils/collect_env.py No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda-11.3' Traceback (most recent call last): File "mmdet3d/utils/collect_env.py", line 5, in import mmdet3d ModuleNotFoundError: No module named 'mmdet3d' 由于还没编译,所以collect_env.py运行不了。另外这个是我的安装步骤:

conda create -n env1 python=3.8 -y

conda activate env1

conda install pytorch==1.9.0 torchvision==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge

pip install mmcv-full==1.3.12 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

pip install mmdet==2.14.0

pip install mmsegmentation==0.14.1

pip uninstall numpy -y

pip install numpy==1.19.5

pip install cython==0.29.36

pip install mmpycocotools

pip install pycocotools==2.0.1

git clone https://github.com/open-mmlab/mmdetection3d.git

cd mmdetection3d

git checkout v0.16.0

pip install -v -e .

在最后一步会出错。另外这是我的环境变量: echo $CUDA_HOME /usr/local/cuda-11.3 echo $PATH /usr/local/anaconda3/envs/radiant/bin:/usr/local/cuda-11.3/bin:/opt/ros/melodic/bin:/home/wql/anaconda3/bin:/home/wql/anaconda3/condabin:/home/wql/anaconda3/bin:/usr/local/cuda-11.3/bin:/home/wql/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin echo $LD_LIBRARY_PATH /usr/local/cuda-11.3/lib64:/home/wql/dai_ws/devel/lib:/home/wql/SG-SLAM-old/devel/lib:/home/wql/car_root1/devel/lib:/home/wql/catkin_ws/devel/lib:/opt/ros/melodic/lib:/usr/local/cuda-11.3/lib64

Reproduces the problem - code sample

这个是setup.py文件: from setuptools import find_packages, setup

import os import shutil import sys import torch import warnings from os import path as osp from torch.utils.cpp_extension import (BuildExtension, CppExtension, CUDAExtension)

def readme(): with open('README.md', encoding='utf-8') as f: content = f.read() return content

version_file = 'mmdet3d/version.py'

def get_version(): with open(version_file, 'r') as f: exec(compile(f.read(), version_file, 'exec')) import sys

# return short version for sdist
if 'sdist' in sys.argv or 'bdist_wheel' in sys.argv:
    return locals()['short_version']
else:
    return locals()['__version__']

def make_cuda_ext(name, module, sources, sources_cuda=[], extra_args=[], extra_include_path=[]):

define_macros = []
extra_compile_args = {'cxx': [] + extra_args}

if torch.cuda.is_available() or os.getenv('FORCE_CUDA', '0') == '1':
    define_macros += [('WITH_CUDA', None)]
    extension = CUDAExtension
    extra_compile_args['nvcc'] = extra_args + [
        '-D__CUDA_NO_HALF_OPERATORS__',
        '-D__CUDA_NO_HALF_CONVERSIONS__',
        '-D__CUDA_NO_HALF2_OPERATORS__',
    ]
    sources += sources_cuda
else:
    print('Compiling {} without CUDA'.format(name))
    extension = CppExtension
    # raise EnvironmentError('CUDA is required to compile MMDetection!')

return extension(
    name='{}.{}'.format(module, name),
    sources=[os.path.join(*module.split('.'), p) for p in sources],
    include_dirs=extra_include_path,
    define_macros=define_macros,
    extra_compile_args=extra_compile_args)

def parse_requirements(fname='requirements.txt', with_version=True): """Parse the package dependencies listed in a requirements file but strips specific versioning information.

Args:
    fname (str): path to requirements file
    with_version (bool, default=False): if True include version specs

Returns:
    list[str]: list of requirements items

CommandLine:
    python -c "import setup; print(setup.parse_requirements())"
"""
import re
import sys
from os.path import exists
require_fpath = fname

def parse_line(line):
    """Parse information from a line in a requirements text file."""
    if line.startswith('-r '):
        # Allow specifying requirements in other files
        target = line.split(' ')[1]
        for info in parse_require_file(target):
            yield info
    else:
        info = {'line': line}
        if line.startswith('-e '):
            info['package'] = line.split('#egg=')[1]
        else:
            # Remove versioning from the package
            pat = '(' + '|'.join(['>=', '==', '>']) + ')'
            parts = re.split(pat, line, maxsplit=1)
            parts = [p.strip() for p in parts]

            info['package'] = parts[0]
            if len(parts) > 1:
                op, rest = parts[1:]
                if ';' in rest:
                    # Handle platform specific dependencies
                    # http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies
                    version, platform_deps = map(str.strip,
                                                 rest.split(';'))
                    info['platform_deps'] = platform_deps
                else:
                    version = rest  # NOQA
                info['version'] = (op, version)
        yield info

def parse_require_file(fpath):
    with open(fpath, 'r') as f:
        for line in f.readlines():
            line = line.strip()
            if line and not line.startswith('#'):
                for info in parse_line(line):
                    yield info

def gen_packages_items():
    if exists(require_fpath):
        for info in parse_require_file(require_fpath):
            parts = [info['package']]
            if with_version and 'version' in info:
                parts.extend(info['version'])
            if not sys.version.startswith('3.4'):
                # apparently package_deps are broken in 3.4
                platform_deps = info.get('platform_deps')
                if platform_deps is not None:
                    parts.append(';' + platform_deps)
            item = ''.join(parts)
            yield item

packages = list(gen_packages_items())
return packages

def add_mim_extention(): """Add extra files that are required to support MIM into the package.

These files will be added by creating a symlink to the originals if the
package is installed in `editable` mode (e.g. pip install -e .), or by
copying from the originals otherwise.
"""

# parse installment mode
if 'develop' in sys.argv:
    # installed by `pip install -e .`
    mode = 'symlink'
elif 'sdist' in sys.argv or 'bdist_wheel' in sys.argv:
    # installed by `pip install .`
    # or create source distribution by `python setup.py sdist`
    mode = 'copy'
else:
    return

filenames = ['tools', 'configs', 'model-index.yml']
repo_path = osp.dirname(__file__)
mim_path = osp.join(repo_path, 'mmdet3d', '.mim')
os.makedirs(mim_path, exist_ok=True)

for filename in filenames:
    if osp.exists(filename):
        src_path = osp.join(repo_path, filename)
        tar_path = osp.join(mim_path, filename)

        if osp.isfile(tar_path) or osp.islink(tar_path):
            os.remove(tar_path)
        elif osp.isdir(tar_path):
            shutil.rmtree(tar_path)

        if mode == 'symlink':
            src_relpath = osp.relpath(src_path, osp.dirname(tar_path))
            os.symlink(src_relpath, tar_path)
        elif mode == 'copy':
            if osp.isfile(src_path):
                shutil.copyfile(src_path, tar_path)
            elif osp.isdir(src_path):
                shutil.copytree(src_path, tar_path)
            else:
                warnings.warn(f'Cannot copy file {src_path}.')
        else:
            raise ValueError(f'Invalid mode {mode}')

if name == 'main': add_mim_extention() setup( name='mmdet3d', version=get_version(), description=("OpenMMLab's next-generation platform" 'for general 3D object detection.'), long_description=readme(), long_description_content_type='text/markdown', author='OpenMMLab', author_email='zwwdev@gmail.com', keywords='computer vision, 3D object detection', url='https://github.com/open-mmlab/mmdetection3d', packages=find_packages(), include_package_data=True, package_data={'mmdet3d.ops': ['/.so']}, classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', ], license='Apache License 2.0', setup_requires=parse_requirements('requirements/build.txt'), tests_require=parse_requirements('requirements/tests.txt'), install_requires=parse_requirements('requirements/runtime.txt'), extras_require={ 'all': parse_requirements('requirements.txt'), 'tests': parse_requirements('requirements/tests.txt'), 'build': parse_requirements('requirements/build.txt'), 'optional': parse_requirements('requirements/optional.txt'), }, ext_modules=[ make_cuda_ext( name='sparse_conv_ext', module='mmdet3d.ops.spconv', extra_include_path=[

PyTorch 1.5 uses ninjia, which requires absolute path

                # of included files, relative path will cause failure.
                os.path.abspath(
                    os.path.join(*'mmdet3d.ops.spconv'.split('.'),
                                 'include/'))
            ],
            sources=[
                'src/all.cc',
                'src/reordering.cc',
                'src/reordering_cuda.cu',
                'src/indice.cc',
                'src/indice_cuda.cu',
                'src/maxpool.cc',
                'src/maxpool_cuda.cu',
            ],
            extra_args=['-w', '-std=c++14']),
        make_cuda_ext(
            name='iou3d_cuda',
            module='mmdet3d.ops.iou3d',
            sources=[
                'src/iou3d.cpp',
                'src/iou3d_kernel.cu',
            ]),
        make_cuda_ext(
            name='voxel_layer',
            module='mmdet3d.ops.voxel',
            sources=[
                'src/voxelization.cpp',
                'src/scatter_points_cpu.cpp',
                'src/scatter_points_cuda.cu',
                'src/voxelization_cpu.cpp',
                'src/voxelization_cuda.cu',
            ]),
        make_cuda_ext(
            name='roiaware_pool3d_ext',
            module='mmdet3d.ops.roiaware_pool3d',
            sources=[
                'src/roiaware_pool3d.cpp',
                'src/points_in_boxes_cpu.cpp',
            ],
            sources_cuda=[
                'src/roiaware_pool3d_kernel.cu',
                'src/points_in_boxes_cuda.cu',
            ]),
        make_cuda_ext(
            name='ball_query_ext',
            module='mmdet3d.ops.ball_query',
            sources=['src/ball_query.cpp'],
            sources_cuda=['src/ball_query_cuda.cu']),
        make_cuda_ext(
            name='knn_ext',
            module='mmdet3d.ops.knn',
            sources=['src/knn.cpp'],
            sources_cuda=['src/knn_cuda.cu']),
        make_cuda_ext(
            name='assign_score_withk_ext',
            module='mmdet3d.ops.paconv',
            sources=['src/assign_score_withk.cpp'],
            sources_cuda=['src/assign_score_withk_cuda.cu']),
        make_cuda_ext(
            name='group_points_ext',
            module='mmdet3d.ops.group_points',
            sources=['src/group_points.cpp'],
            sources_cuda=['src/group_points_cuda.cu']),
        make_cuda_ext(
            name='interpolate_ext',
            module='mmdet3d.ops.interpolate',
            sources=['src/interpolate.cpp'],
            sources_cuda=[
                'src/three_interpolate_cuda.cu', 'src/three_nn_cuda.cu'
            ]),
        make_cuda_ext(
            name='furthest_point_sample_ext',
            module='mmdet3d.ops.furthest_point_sample',
            sources=['src/furthest_point_sample.cpp'],
            sources_cuda=['src/furthest_point_sample_cuda.cu']),
        make_cuda_ext(
            name='gather_points_ext',
            module='mmdet3d.ops.gather_points',
            sources=['src/gather_points.cpp'],
            sources_cuda=['src/gather_points_cuda.cu'])
    ],
    cmdclass={'build_ext': BuildExtension},
    zip_safe=False)

Reproduces the problem - command or script

conda create -n env1 python=3.8 -y

conda activate env1

conda install pytorch==1.9.0 torchvision==0.10.0 cudatoolkit=11.3 -c pytorch -c conda-forge

pip install mmcv-full==1.3.12 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

pip install mmdet==2.14.0

pip install mmsegmentation==0.14.1

pip uninstall numpy -y

pip install numpy==1.19.5

pip install cython==0.29.36

pip install mmpycocotools

pip install pycocotools==2.0.1

git clone https://github.com/open-mmlab/mmdetection3d.git

cd mmdetection3d

git checkout v0.16.0

pip install -v -e .

主要是上面这些命令

Reproduces the problem - error message

这个是报错片段: Running setup.py develop for mmdet3d Running command python setup.py develop No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda-11.3' Compiling sparse_conv_ext without CUDA Compiling iou3d_cuda without CUDA Compiling voxel_layer without CUDA Compiling roiaware_pool3d_ext without CUDA Compiling ball_query_ext without CUDA Compiling knn_ext without CUDA Compiling assign_score_withk_ext without CUDA Compiling group_points_ext without CUDA Compiling interpolate_ext without CUDA Compiling furthest_point_sample_ext without CUDA Compiling gather_points_ext without CUDA running develop running egg_info writing mmdet3d.egg-info/PKG-INFO writing dependency_links to mmdet3d.egg-info/dependency_links.txt writing requirements to mmdet3d.egg-info/requires.txt writing top-level names to mmdet3d.egg-info/top_level.txt reading manifest file 'mmdet3d.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' /usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/command/develop.py:40: EasyInstallDeprecationWarning: easy_install command is deprecated. !!

        ********************************************************************************
        Please avoid running ``setup.py`` and ``easy_install``.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://github.com/pypa/setuptools/issues/917 for details.
        ********************************************************************************

!!
  easy_install.initialize_options(self)
/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
warning: no files found matching '*.cpp' under directory 'mmdet3d/.mim/ops'
warning: no files found matching '*.cu' under directory 'mmdet3d/.mim/ops'
warning: no files found matching '*.h' under directory 'mmdet3d/.mim/ops'
warning: no files found matching '*.cc' under directory 'mmdet3d/.mim/ops'
adding license file 'LICENSE'
writing manifest file 'mmdet3d.egg-info/SOURCES.txt'
running build_ext
building 'mmdet3d.ops.spconv.sparse_conv_ext' extension
Emitting ninja build file /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/4] c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/all.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/all.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/all.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
FAILED: /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/all.o
c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/all.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/all.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/all.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/wql/mmdetection3d/mmdet3d/ops/spconv/src/all.cc:15:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
   15 | #include <cuda_runtime_api.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/4] c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/indice.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/indice.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/indice.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
FAILED: /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/indice.o
c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/indice.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/indice.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/indice.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /home/wql/mmdetection3d/mmdet3d/ops/spconv/include/spconv/geometry.h:18,
                 from /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/indice.cc:15:
/home/wql/mmdetection3d/mmdet3d/ops/spconv/include/tensorview/tensorview.h:16:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
   16 | #include <cuda_runtime_api.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[3/4] c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/reordering.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/reordering.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/reordering.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
FAILED: /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/reordering.o
c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/reordering.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/reordering.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/reordering.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /home/wql/mmdetection3d/mmdet3d/ops/spconv/include/spconv/reordering.h:17,
                 from /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/reordering.cc:15:
/home/wql/mmdetection3d/mmdet3d/ops/spconv/include/tensorview/tensorview.h:16:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
   16 | #include <cuda_runtime_api.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[4/4] c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/maxpool.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/maxpool.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/maxpool.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
FAILED: /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/maxpool.o
c++ -MMD -MF /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/maxpool.o.d -pthread -B /usr/local/anaconda3/envs/radiant/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/wql/mmdetection3d/mmdet3d/ops/spconv/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/TH -I/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/include/THC -I/usr/local/anaconda3/envs/radiant/include/python3.8 -c -c /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/maxpool.cc -o /home/wql/mmdetection3d/build/temp.linux-x86_64-cpython-38/mmdet3d/ops/spconv/src/maxpool.o -w -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=sparse_conv_ext -D_GLIBCXX_USE_CXX11_ABI=0
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /home/wql/mmdetection3d/mmdet3d/ops/spconv/include/spconv/maxpool.h:17,
                 from /home/wql/mmdetection3d/mmdet3d/ops/spconv/src/maxpool.cc:15:
/home/wql/mmdetection3d/mmdet3d/ops/spconv/include/tensorview/tensorview.h:16:10: fatal error: cuda_runtime_api.h: 没有那个文件或目录
   16 | #include <cuda_runtime_api.h>
      |          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1666, in _run_ninja_build
    subprocess.run(
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "<pip-setuptools-caller>", line 34, in <module>
  File "/home/wql/mmdetection3d/setup.py", line 192, in <module>
    setup(
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/__init__.py", line 104, in setup
    return distutils.core.setup(**attrs)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 184, in setup
    return run_commands(dist)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
    dist.run_commands()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
    self.run_command(cmd)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/dist.py", line 967, in run_command
    super().run_command(command)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/command/develop.py", line 34, in run
    self.install_for_development()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/command/develop.py", line 111, in install_for_development
    self.run_command('build_ext')
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
    self.distribution.run_command(command)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/dist.py", line 967, in run_command
    super().run_command(command)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
    cmd_obj.run()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 91, in run
    _build_ext.run(self)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 186, in run
    _build_ext.build_ext.run(self)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 359, in run
    self.build_extensions()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 709, in build_extensions
    build_ext.build_extensions(self)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
    _build_ext.build_ext.build_extensions(self)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 479, in build_extensions
    self._build_extensions_serial()
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 505, in _build_extensions_serial
    self.build_extension(ext)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 252, in build_extension
    _build_ext.build_extension(self, ext)
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 560, in build_extension
    objects = self.compiler.compile(
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 530, in unix_wrap_ninja_compile
    _write_ninja_file_and_compile_objects(
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1355, in _write_ninja_file_and_compile_objects
    _run_ninja_build(
  File "/usr/local/anaconda3/envs/radiant/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1682, in _run_ninja_build
    raise RuntimeError(message) from e
RuntimeError: Error compiling objects for extension
error: subprocess-exited-with-error

× python setup.py develop did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /usr/local/anaconda3/envs/radiant/bin/python -c '
exec(compile('"'"''"'"''"'"'
# This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
#
# - It imports setuptools before invoking setup.py, to enable projects that directly
#   import from `distutils.core` to work with newer packaging standards.
# - It provides a clear error message when setuptools is not installed.
# - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
#   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
#     manifest_maker: standard file '"'"'-c'"'"' not found".
# - It generates a shim setup.py, for handling setup.cfg-only projects.
import os, sys, tokenize

try:
    import setuptools
except ImportError as error:
    print(
        "ERROR: Can not execute `setup.py` since setuptools is not available in "
        "the build environment.",
        file=sys.stderr,
    )
    sys.exit(1)

__file__ = %r
sys.argv[0] = __file__

if os.path.exists(__file__):
    filename = __file__
    with tokenize.open(__file__) as f:
        setup_py_code = f.read()
else:
    filename = "<auto-generated setuptools caller>"
    setup_py_code = "from setuptools import setup; setup()"

exec(compile(setup_py_code, filename, "exec"))
'"'"''"'"''"'"' % ('"'"'/home/wql/mmdetection3d/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps
cwd: /home/wql/mmdetection3d/

error: subprocess-exited-with-error

× python setup.py develop did not run successfully. │ exit code: 1 ╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Additional information

我真的不知道该怎么办了,这个问题卡了很久,由于我想复现一个基于mmdet的论文(radiant),它的装的版本就是v0.16.0的

save-me-ctrl-c commented 1 week ago

老哥解决了吗,我也是报这个错,有的人说是要在gcc5下面重新下cuda,但是我改了之后还是不行,网上也没有可以参考的