IDEA-Research / Grounded-Segment-Anything

Grounded SAM: Marrying Grounding DINO with Segment Anything & Stable Diffusion & Recognize Anything - Automatically Detect , Segment and Generate Anything
https://arxiv.org/abs/2401.14159
Apache License 2.0
14.23k stars 1.31k forks source link

Fail to install GroundingDINO: Building wheel for groundingdino (pyproject.toml) ... error #416

Closed AtaraxyAdong closed 7 months ago

AtaraxyAdong commented 7 months ago

Hi, I try to install this project localy

OS Ubuntu 20.04
CUDA 11.3
Pytorch 1.12.0
gcc 9.4.0

However, when I run python -m pip install -e GroundingDINO or $ cd GroundingDINO $ pip install ., I encounter an error :

Building wheels for collected packages: groundingdino
  Building wheel for groundingdino (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for groundingdino (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [101 lines of output]
      /tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/torch/nn/modules/transformer.py:20: UserWarning: Failed to initialize NumPy: No module named 'numpy' (Triggered internally at ../torch/csrc/utils/tensor_numpy.cpp:84.)
        device: torch.device = torch.device(torch._C._get_default_device()),  # torch.device('cpu'),
      Building wheel groundingdino-0.1.0
      Compiling with CUDA
      running bdist_wheel
      /tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/torch/utils/cpp_extension.py:502: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
        warnings.warn(msg.format('we could not find ninja.'))
      running build
      running build_py
      creating build/lib.linux-x86_64-cpython-39
      creating build/lib.linux-x86_64-cpython-39/groundingdino
      copying groundingdino/version.py -> build/lib.linux-x86_64-cpython-39/groundingdino
      copying groundingdino/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino
      creating build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/time_counter.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/inference.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/visualizer.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/utils.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/vl_utils.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/slio.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/slconfig.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/box_ops.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/logger.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/get_tokenlizer.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      copying groundingdino/util/misc.py -> build/lib.linux-x86_64-cpython-39/groundingdino/util
      creating build/lib.linux-x86_64-cpython-39/groundingdino/datasets
      copying groundingdino/datasets/transforms.py -> build/lib.linux-x86_64-cpython-39/groundingdino/datasets
      copying groundingdino/datasets/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino/datasets
      creating build/lib.linux-x86_64-cpython-39/groundingdino/models
      copying groundingdino/models/registry.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models
      copying groundingdino/models/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models
      creating build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/ms_deform_attn.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/transformer.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/fuse_modules.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/utils.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/groundingdino.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/bertwarper.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      copying groundingdino/models/GroundingDINO/transformer_vanilla.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO
      creating build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO/backbone
      copying groundingdino/models/GroundingDINO/backbone/position_encoding.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO/backbone
      copying groundingdino/models/GroundingDINO/backbone/backbone.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO/backbone
      copying groundingdino/models/GroundingDINO/backbone/__init__.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO/backbone
      copying groundingdino/models/GroundingDINO/backbone/swin_transformer.py -> build/lib.linux-x86_64-cpython-39/groundingdino/models/GroundingDINO/backbone
      running build_ext
      Traceback (most recent call last):
        File "/home/gordon/anaconda3/envs/anno-auto/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/gordon/anaconda3/envs/anno-auto/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/gordon/anaconda3/envs/anno-auto/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 404, in build_wheel
          return self._build_with_temp_dir(
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
          self.run_setup()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 200, in <module>
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 368, in run
          self.run_command("build")
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 88, in run
          _build_ext.run(self)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 525, in build_extensions
          _check_cuda_version(compiler_name, compiler_version)
        File "/tmp/pip-build-env-y8pugo6e/overlay/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 413, in _check_cuda_version
          raise RuntimeError(CUDA_MISMATCH_MESSAGE.format(cuda_str_version, torch.version.cuda))
      RuntimeError:
      The detected CUDA version (11.3) mismatches the version that was used to compile
      PyTorch (12.1). Please make sure to use the same CUDA versions.

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for groundingdino
Failed to build groundingdino
ERROR: Could not build wheels for groundingdino, which is required to install pyproject.toml-based projects
rentainhe commented 7 months ago

The detected CUDA version (11.3) mismatches the version that was used to compile PyTorch (12.1). Please make sure to use the same CUDA versions.

Seems like the CUDA environment should be double-checked

AtaraxyAdong commented 7 months ago

Thanks, I updated CUDA to version 12.1, and it's working