torchsparse icon indicating copy to clipboard operation
torchsparse copied to clipboard

[Feature Request / Question] Modifications Required to run on ARM / M1

Open The-Real-Thisas opened this issue 3 years ago • 20 comments

Since I didn't see any mention of M1 or ARM and the current build fails. I was wondering what changes may be needed to support the architecture.

Short Version:

 ~ pip install --upgrade git+https://github.com/mit-han-lab/[email protected]

Building wheels for collected packages: torchsparse
  Building wheel for torchsparse (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [58 lines of output]
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/thisas/miniforge3/include -arch arm64 -fPIC -O2 -isystem /Users/thisas/miniforge3/include -arch arm64 -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/torch/csrc/api/include -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/TH -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/THC -I/Users/thisas/miniforge3/include/python3.9 -c torchsparse/backend/convolution/convolution_cpu.cpp -o build/temp.macosx-11.0-arm64-cpython-39/torchsparse/backend/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_clang\" -DPYBIND11_STDLIB=\"_libcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1002\" -DTORCH_EXTENSION_NAME=backend -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
      clang: warning: -lgomp: 'linker' input unused [-Wunused-command-line-argument]
      clang: error: unsupported option '-fopenmp'
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for torchsparse
  Running setup.py clean for torchsparse
Failed to build torchsparse
Installing collected packages: torchsparse
  Running setup.py install for torchsparse ... error
  error: subprocess-exited-with-error

  × Running setup.py install for torchsparse did not run successfully.
  │ exit code: 1
  ╰─> [60 lines of output]
      running install
      clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /Users/thisas/miniforge3/include -arch arm64 -fPIC -O2 -isystem /Users/thisas/miniforge3/include -arch arm64 -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/torch/csrc/api/include -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/TH -I/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/include/THC -I/Users/thisas/miniforge3/include/python3.9 -c torchsparse/backend/convolution/convolution_cpu.cpp -o build/temp.macosx-11.0-arm64-cpython-39/torchsparse/backend/convolution/convolution_cpu.o -g -O3 -fopenmp -lgomp -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE=\"_clang\" -DPYBIND11_STDLIB=\"_libcpp\" -DPYBIND11_BUILD_ABI=\"_cxxabi1002\" -DTORCH_EXTENSION_NAME=backend -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
      clang: warning: -lgomp: 'linker' input unused [-Wunused-command-line-argument]
      clang: error: unsupported option '-fopenmp'
      error: command '/usr/bin/clang' failed with exit code 1
      [end of output]

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

× Encountered error while trying to install package.
╰─> torchsparse

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Full Log: fail.log

The-Real-Thisas avatar Jul 08 '22 07:07 The-Real-Thisas

Could you maybe try to use gcc instead of clang for the compilation?

zhijian-liu avatar Jul 15 '22 04:07 zhijian-liu

I attempted.

I think maybe this is the wrong way to do it.

 ~ pip install --global-option build_ext --global-option --compiler=gcc --upgrade git+https://github.com/mit-han-lab/[email protected]

WARNING: Disabling all use of wheels due to the use of --build-option / --global-option / --install-option.
Collecting git+https://github.com/mit-han-lab/[email protected]
  Cloning https://github.com/mit-han-lab/torchsparse.git (to revision v1.4.0) to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-x1r2vkq5
  Running command git clone --filter=blob:none --quiet https://github.com/mit-han-lab/torchsparse.git /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-x1r2vkq5
  Running command git checkout -q 74099d10a51c71c14318bce63d6421f698b24f24
  Resolved https://github.com/mit-han-lab/torchsparse.git to commit 74099d10a51c71c14318bce63d6421f698b24f24
  Preparing metadata (setup.py) ... done
Skipping wheel build for torchsparse, due to binaries being disabled for it.
Installing collected packages: torchsparse
  Running setup.py install for torchsparse ... error
  error: subprocess-exited-with-error

  × Running setup.py install for torchsparse did not run successfully.
  │ exit code: 1
  ╰─> [2 lines of output]
      running build_ext
      error: don't know how to compile C/C++ code on platform 'posix' with 'gcc' compiler
      [end of output]

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

× Encountered error while trying to install package.
╰─> torchsparse

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

The-Real-Thisas avatar Jul 15 '22 08:07 The-Real-Thisas

Weirdly enough this conda package (https://anaconda.org/conda-forge/torchsparse) actually builds but when I execute an example script.

from torch import nn
from torchsparse import nn as spnn

model = nn.Sequential(
    spnn.Conv3d(in_channels, out_channels, kernel_size),
    spnn.BatchNorm(out_channels),
    spnn.ReLU(True),
)

It gives me an error.

(base)  ~ python3 temp.py
Traceback (most recent call last):
  File "/Users/thisas/temp.py", line 2, in <module>
    from torchsparse import nn as spnn
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/__init__.py", line 1, in <module>
    from .modules import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/modules/__init__.py", line 3, in <module>
    from .conv import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/modules/conv.py", line 9, in <module>
    from torchsparse.nn import functional as F
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/functional/__init__.py", line 2, in <module>
    from .conv import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/functional/conv.py", line 7, in <module>
    import torchsparse.backend
ImportError: dlopen(/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/backend.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '__ZNK2at10TensorBase8data_ptrIlEEPT_v'

I think this is indicative of some sort of dependacy collision.

Related Stackoverflow Python Version: Python 3.9.13 Pytorch: 1.11.0.post2

The-Real-Thisas avatar Jul 15 '22 09:07 The-Real-Thisas

I think you could try setting CC or CXX instead to specify which compiler to use for building TorchSparse.

zhijian-liu avatar Jul 22 '22 06:07 zhijian-liu

I'm sorry @zhijian-liu I'm not sure how I can do that. Could you maybe provide what flag I should set since I feel out of my depth here.

The-Real-Thisas avatar Jul 23 '22 15:07 The-Real-Thisas

No worries! I'm not very certain either. Could you maybe try export CXX=<path-to-g++> before installation (see https://unix.stackexchange.com/questions/298810/how-to-change-the-default-cc-command-on-mac-os)?

zhijian-liu avatar Jul 25 '22 03:07 zhijian-liu

@The-Real-Thisas, I'm just checking in to see if this issue has been resolved. Thanks!

zhijian-liu avatar Aug 12 '22 04:08 zhijian-liu

Sorry @zhijian-liu I was busy for the past few weeks and was unable to focus on this.

I tested with setting CXX

(base)  ~ export CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin && pip install --upgrade git+https://github.com/mit-han-lab/[email protected]
Collecting git+https://github.com/mit-han-lab/[email protected]
  Cloning https://github.com/mit-han-lab/torchsparse.git (to revision v1.4.0) to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-iomdfi44
  Running command git clone --filter=blob:none --quiet https://github.com/mit-han-lab/torchsparse.git /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-iomdfi44
  Running command git checkout -q 74099d10a51c71c14318bce63d6421f698b24f24
  Resolved https://github.com/mit-han-lab/torchsparse.git to commit 74099d10a51c71c14318bce63d6421f698b24f24
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-iomdfi44/setup.py", line 7, in <module>
          from torch.utils.cpp_extension import (CUDA_HOME, BuildExtension, CppExtension,
      ModuleNotFoundError: No module named 'torch.utils.cpp_extension'
      [end of output]

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

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

It's a different error so I think it is progress ?

I think it's a problem with pytorch since it gives a ModuleNotFoundError but I have torch installed, maybe it is a version issue ?

(base)  ~ pip show torch
Name: torch
Version: 1.12.0
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: [email protected]
License: BSD-3
Location: /Users/thisas/miniforge3/lib/python3.9/site-packages
Requires: typing-extensions
Required-by: timm, torchvision

I'm not sure where to go from here, maybe try building from the repo manually ?

The-Real-Thisas avatar Aug 12 '22 14:08 The-Real-Thisas

@zhijian-liu, Sorry for the delay, just wondering what I can do from here ?

The-Real-Thisas avatar Sep 06 '22 16:09 The-Real-Thisas

Sorry for the late reply. Could you double-check in your Python that you could import torch.utils.cpp_extension?

zhijian-liu avatar Sep 16 '22 22:09 zhijian-liu

Nope it gives me a ModuleNotFoundError: No module named 'torch.utils.cpp_extension' however importing from torch import nn works.

The-Real-Thisas avatar Sep 17 '22 09:09 The-Real-Thisas

Hmmm, this seems to be a PyTorch issue. Could you double-check the PyTorch version?

zhijian-liu avatar Sep 18 '22 01:09 zhijian-liu

From pip show torch

Name: torch
Version: 1.12.0
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: [email protected]
License: BSD-3
Location: /Users/thisas/miniforge3/lib/python3.9/site-packages
Requires: typing-extensions
Required-by: timm, torchvision

The-Real-Thisas avatar Sep 18 '22 03:09 The-Real-Thisas

Could you maybe try downgrading PyTorch to 1.11.0?

zhijian-liu avatar Sep 18 '22 15:09 zhijian-liu

Now import torch.utils.cpp_extension works but trying to install torchsparse gives the same error.

(base)  ~/Desktop/  export CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin && pip install --upgrade git+https://github.com/mit-han-lab/[email protected]
Collecting git+https://github.com/mit-han-lab/[email protected]
  Cloning https://github.com/mit-han-lab/torchsparse.git (to revision v1.4.0) to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-gqkg3sbj
  Running command git clone --filter=blob:none --quiet https://github.com/mit-han-lab/torchsparse.git /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-gqkg3sbj
  Running command git checkout -q 74099d10a51c71c14318bce63d6421f698b24f24
  Resolved https://github.com/mit-han-lab/torchsparse.git to commit 74099d10a51c71c14318bce63d6421f698b24f24
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: torchsparse
  Building wheel for torchsparse (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [94 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-11.0-arm64-cpython-39
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/version.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/tensor.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/operators.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
      copying torchsparse/nn/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/collate.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/quantize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/utils.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/kernel.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/apply.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/norm.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/bev.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/downsample.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/query.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/devoxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/hash.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/voxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/count.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-gqkg3sbj/setup.py", line 30, in <module>
          setup(
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
          self.run_command(cmd)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
          self.run_command('build')
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build.py", line 33, in run
          super().run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 132, in run
          self.run_command(cmd_name)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 84, in run
          _build_ext.run(self)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
          self.build_extensions()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 396, in build_extensions
          self._check_abi()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 767, in _check_abi
          check_compiler_abi_compatibility(compiler)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 300, in check_compiler_abi_compatibility
          if not check_compiler_ok_for_platform(compiler):
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 257, in check_compiler_ok_for_platform
          which = subprocess.check_output(['which', compiler], stderr=subprocess.STDOUT)
        File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 424, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
        File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 528, in run
          raise CalledProcessError(retcode, process.args,
      subprocess.CalledProcessError: Command '['which', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin']' returned non-zero exit status 1.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for torchsparse
  Running setup.py clean for torchsparse
Failed to build torchsparse
Installing collected packages: torchsparse
  Running setup.py install for torchsparse ... error
  error: subprocess-exited-with-error

  × Running setup.py install for torchsparse did not run successfully.
  │ exit code: 1
  ╰─> [98 lines of output]
      running install
      /Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-11.0-arm64-cpython-39
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/version.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/tensor.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      copying torchsparse/operators.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
      copying torchsparse/nn/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/collate.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/quantize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      copying torchsparse/utils/utils.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/kernel.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      copying torchsparse/nn/utils/apply.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/norm.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/bev.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      copying torchsparse/nn/modules/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
      creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/downsample.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/query.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/devoxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/hash.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/voxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      copying torchsparse/nn/functional/count.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-gqkg3sbj/setup.py", line 30, in <module>
          setup(
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
          return distutils.core.setup(**attrs)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
          self.run_command(cmd)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
          return orig.install.run(self)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/install.py", line 698, in run
          self.run_command('build')
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build.py", line 33, in run
          super().run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 132, in run
          self.run_command(cmd_name)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
          self.distribution.run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
          super().run_command(command)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
          cmd_obj.run()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 84, in run
          _build_ext.run(self)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
          self.build_extensions()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 396, in build_extensions
          self._check_abi()
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 767, in _check_abi
          check_compiler_abi_compatibility(compiler)
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 300, in check_compiler_abi_compatibility
          if not check_compiler_ok_for_platform(compiler):
        File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 257, in check_compiler_ok_for_platform
          which = subprocess.check_output(['which', compiler], stderr=subprocess.STDOUT)
        File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 424, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
        File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 528, in run
          raise CalledProcessError(retcode, process.args,
      subprocess.CalledProcessError: Command '['which', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin']' returned non-zero exit status 1.
      [end of output]

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

× Encountered error while trying to install package.
╰─> torchsparse

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.```

The-Real-Thisas avatar Sep 18 '22 16:09 The-Real-Thisas

Trying to run,

from torch import nn
from torchsparse import nn as spnn
import torch.utils.cpp_extension


model = nn.Sequential(
    spnn.Conv3d(in_channels, out_channels, kernel_size),
    spnn.BatchNorm(out_channels),
    spnn.ReLU(True),
)

with the conda package of conda install -c conda-forge torchsparse gives,

Traceback (most recent call last):
  File "/Users/thisas/Desktop/test.py", line 2, in <module>
    from torchsparse import nn as spnn
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/__init__.py", line 1, in <module>
    from .modules import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/modules/__init__.py", line 3, in <module>
    from .conv import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/modules/conv.py", line 9, in <module>
    from torchsparse.nn import functional as F
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/functional/__init__.py", line 2, in <module>
    from .conv import *
  File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/nn/functional/conv.py", line 7, in <module>
    import torchsparse.backend
ImportError: dlopen(/Users/thisas/miniforge3/lib/python3.9/site-packages/torchsparse/backend.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace (__ZNK2at10TensorBase8data_ptrIlEEPT_v)```

But installs successfully. 

```log
(base)  ~/Desktop/ conda install -c conda-forge torchsparse
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /Users/thisas/miniforge3

  added / updated specs:
    - torchsparse


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2022.9.14  |       h4653dfc_0         152 KB  conda-forge
    certifi-2022.9.14          |     pyhd8ed1ab_0         156 KB  conda-forge
    conda-4.14.0               |   py39h2804cbe_0        1017 KB  conda-forge
    pytorch-1.12.1             |cpu_py39h0768760_0        38.9 MB  conda-forge
    toolz-0.12.0               |     pyhd8ed1ab_0          48 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        40.2 MB

The following NEW packages will be INSTALLED:

  ninja              conda-forge/osx-arm64::ninja-1.11.0-hf86a087_0
  pytorch            conda-forge/osx-arm64::pytorch-1.12.1-cpu_py39h0768760_0
  sleef              conda-forge/osx-arm64::sleef-3.5.1-h156473d_2
  toolz              conda-forge/noarch::toolz-0.12.0-pyhd8ed1ab_0
  torchsparse        conda-forge/osx-arm64::torchsparse-1.4.0-py39h1d658c3_14_cpu
  typing_extensions  conda-forge/noarch::typing_extensions-4.3.0-pyha770c72_0

The following packages will be UPDATED:

  ca-certificates                      2022.6.15-h4653dfc_0 --> 2022.9.14-h4653dfc_0
  certifi            conda-forge/osx-arm64::certifi-2022.6~ --> conda-forge/noarch::certifi-2022.9.14-pyhd8ed1ab_0
  conda                               4.13.0-py39h2804cbe_1 --> 4.14.0-py39h2804cbe_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
ca-certificates-2022 | 152 KB    | ################################################################ | 100%
pytorch-1.12.1       | 38.9 MB   | ################################################################ | 100%
conda-4.14.0         | 1017 KB   | ################################################################ | 100%
certifi-2022.9.14    | 156 KB    | ################################################################ | 100%
toolz-0.12.0         | 48 KB     | ################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

The-Real-Thisas avatar Sep 18 '22 16:09 The-Real-Thisas

Could you please try pip install with -v to get the full error message?

zhijian-liu avatar Oct 08 '22 00:10 zhijian-liu

(base)  ~/ export CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin && pip install -v --upgrade git+https://github.com/mit-han-lab/[email protected]
Using pip 22.1.2 from /Users/thisas/miniforge3/lib/python3.9/site-packages/pip (python 3.9)
Collecting git+https://github.com/mit-han-lab/[email protected]
  Cloning https://github.com/mit-han-lab/torchsparse.git (to revision v1.4.0) to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1
  Running command git version
  git version 2.37.3
  Running command git clone --filter=blob:none https://github.com/mit-han-lab/torchsparse.git /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1
  Cloning into '/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1'...
  Updating files:  18% (16/87)
  Updating files:  19% (17/87)
  Updating files:  20% (18/87)
  Updating files:  21% (19/87)
  Updating files:  22% (20/87)
  Updating files:  24% (21/87)
  Updating files:  25% (22/87)
  Updating files:  26% (23/87)
  Updating files:  27% (24/87)
  Updating files:  28% (25/87)
  Updating files:  29% (26/87)
  Updating files:  31% (27/87)
  Updating files:  32% (28/87)
  Updating files:  33% (29/87)
  Updating files:  34% (30/87)
  Updating files:  35% (31/87)
  Updating files:  36% (32/87)
  Updating files:  37% (33/87)
  Updating files:  39% (34/87)
  Updating files:  40% (35/87)
  Updating files:  41% (36/87)
  Updating files:  42% (37/87)
  Updating files:  43% (38/87)
  Updating files:  44% (39/87)
  Updating files:  45% (40/87)
  Updating files:  47% (41/87)
  Updating files:  48% (42/87)
  Updating files:  49% (43/87)
  Updating files:  50% (44/87)
  Updating files:  51% (45/87)
  Updating files:  52% (46/87)
  Updating files:  54% (47/87)
  Updating files:  55% (48/87)
  Updating files:  56% (49/87)
  Updating files:  57% (50/87)
  Updating files:  58% (51/87)
  Updating files:  59% (52/87)
  Updating files:  60% (53/87)
  Updating files:  62% (54/87)
  Updating files:  63% (55/87)
  Updating files:  64% (56/87)
  Updating files:  65% (57/87)
  Updating files:  66% (58/87)
  Updating files:  67% (59/87)
  Updating files:  68% (60/87)
  Updating files:  70% (61/87)
  Updating files:  71% (62/87)
  Updating files:  72% (63/87)
  Updating files:  73% (64/87)
  Updating files:  74% (65/87)
  Updating files:  75% (66/87)
  Updating files:  77% (67/87)
  Updating files:  78% (68/87)
  Updating files:  79% (69/87)
  Updating files:  80% (70/87)
  Updating files:  81% (71/87)
  Updating files:  82% (72/87)
  Updating files:  83% (73/87)
  Updating files:  85% (74/87)
  Updating files:  86% (75/87)
  Updating files:  87% (76/87)
  Updating files:  88% (77/87)
  Updating files:  89% (78/87)
  Updating files:  90% (79/87)
  Updating files:  91% (80/87)
  Updating files:  93% (81/87)
  Updating files:  94% (82/87)
  Updating files:  95% (83/87)
  Updating files:  96% (84/87)
  Updating files:  97% (85/87)
  Updating files:  98% (86/87)
  Updating files: 100% (87/87)
  Updating files: 100% (87/87), done.
  Running command git show-ref v1.4.0
  74099d10a51c71c14318bce63d6421f698b24f24 refs/tags/v1.4.0
  Running command git rev-parse HEAD
  6719899f1acff9a0395ad7bdb5b82b73c39d59d4
  Running command git checkout -q 74099d10a51c71c14318bce63d6421f698b24f24
  Resolved https://github.com/mit-han-lab/torchsparse.git to commit 74099d10a51c71c14318bce63d6421f698b24f24
  Running command python setup.py egg_info
  running egg_info
  creating /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info
  writing /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/dependency_links.txt
  writing top-level names to /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/top_level.txt
  writing manifest file '/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/SOURCES.txt'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-pip-egg-info-xoe78qdo/torchsparse.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: torchsparse
  Running command git rev-parse HEAD
  74099d10a51c71c14318bce63d6421f698b24f24
  Running command python setup.py bdist_wheel
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.macosx-11.0-arm64-cpython-39
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/version.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/tensor.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/operators.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
  copying torchsparse/nn/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/collate.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/quantize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/utils.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/kernel.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/apply.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/norm.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/bev.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/downsample.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/query.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/devoxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/hash.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/voxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/count.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  running build_ext
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/setup.py", line 30, in <module>
      setup(
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
      return distutils.core.setup(**attrs)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
      self.run_command(cmd)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
      self.distribution.run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 132, in run
      self.run_command(cmd_name)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
      self.distribution.run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 84, in run
      _build_ext.run(self)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
      self.build_extensions()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 485, in build_extensions
      compiler_name, compiler_version = self._check_abi()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 869, in _check_abi
      _, version = get_compiler_abi_compatibility_and_version(compiler)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 336, in get_compiler_abi_compatibility_and_version
      if not check_compiler_ok_for_platform(compiler):
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 290, in check_compiler_ok_for_platform
      which = subprocess.check_output(['which', compiler], stderr=subprocess.STDOUT)
    File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 424, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 528, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['which', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin']' returned non-zero exit status 1.
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel 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: /Users/thisas/miniforge3/bin/python3.9 -u -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"))
  '"'"''"'"''"'"' % ('"'"'/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' bdist_wheel -d /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-wheel-1ikqsu6a
  cwd: /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/
  Building wheel for torchsparse (setup.py) ... error
  ERROR: Failed building wheel for torchsparse
  Running setup.py clean for torchsparse
  Running command python setup.py clean
  running clean
  removing 'build/lib.macosx-11.0-arm64-cpython-39' (and everything under it)
  'build/bdist.macosx-11.0-arm64' does not exist -- can't clean it
  'build/scripts-3.9' does not exist -- can't clean it
  removing 'build'
Failed to build torchsparse
Installing collected packages: torchsparse
  Running command Running setup.py install for torchsparse
  running install
  /Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
    warnings.warn(
  running build
  running build_py
  creating build
  creating build/lib.macosx-11.0-arm64-cpython-39
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/version.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/tensor.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  copying torchsparse/operators.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
  copying torchsparse/nn/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/collate.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/quantize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  copying torchsparse/utils/utils.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/utils
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/kernel.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  copying torchsparse/nn/utils/apply.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/utils
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/norm.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/bev.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  copying torchsparse/nn/modules/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/modules
  creating build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/downsample.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/query.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/devoxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/pooling.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/__init__.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/crop.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/hash.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/activation.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/conv.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/voxelize.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  copying torchsparse/nn/functional/count.py -> build/lib.macosx-11.0-arm64-cpython-39/torchsparse/nn/functional
  running build_ext
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/setup.py", line 30, in <module>
      setup(
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
      return distutils.core.setup(**attrs)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 973, in run_commands
      self.run_command(cmd)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/install.py", line 68, in run
      return orig.install.run(self)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/install.py", line 698, in run
      self.run_command('build')
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
      self.distribution.run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 132, in run
      self.run_command(cmd_name)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 319, in run_command
      self.distribution.run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/dist.py", line 1217, in run_command
      super().run_command(command)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 992, in run_command
      cmd_obj.run()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/command/build_ext.py", line 84, in run
      _build_ext.run(self)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 346, in run
      self.build_extensions()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 485, in build_extensions
      compiler_name, compiler_version = self._check_abi()
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 869, in _check_abi
      _, version = get_compiler_abi_compatibility_and_version(compiler)
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 336, in get_compiler_abi_compatibility_and_version
      if not check_compiler_ok_for_platform(compiler):
    File "/Users/thisas/miniforge3/lib/python3.9/site-packages/torch/utils/cpp_extension.py", line 290, in check_compiler_ok_for_platform
      which = subprocess.check_output(['which', compiler], stderr=subprocess.STDOUT)
    File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 424, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    File "/Users/thisas/miniforge3/lib/python3.9/subprocess.py", line 528, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['which', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin']' returned non-zero exit status 1.
  error: subprocess-exited-with-error

  × Running setup.py install for torchsparse 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: /Users/thisas/miniforge3/bin/python3.9 -u -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"))
  '"'"''"'"''"'"' % ('"'"'/private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' install --record /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-record-_ps4bjyr/install-record.txt --single-version-externally-managed --compile --install-headers /Users/thisas/miniforge3/include/python3.9/torchsparse
  cwd: /private/var/folders/z8/sp2w4vyj3q71z22h0hz0vxs00000gn/T/pip-req-build-c80s38l1/
  Running setup.py install for torchsparse ... error
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> torchsparse

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

The-Real-Thisas avatar Oct 08 '22 04:10 The-Real-Thisas

Did this ever get fixed?

free-soellingeraj avatar Mar 24 '24 14:03 free-soellingeraj

No building the latest version from source does not seem to work, conda version did build through so you can try that. https://anaconda.org/conda-forge/torchsparse

Maybe its fixed ?

The-Real-Thisas avatar Apr 07 '24 14:04 The-Real-Thisas