Skip to content

Version 0.1.9 fails to build on macOS #128

@sibocw

Description

@sibocw

Hello,

Version 0.1.9 fails to build on macOS for me. CMake can't find the header for array for some reason.

I've tested this on Macs with Apple Silicon chips and Intel chips. Version 0.1.8 works fine.

The following is the full console output.

Thanks!

$ pip install dm-tree==0.1.9
Collecting dm-tree==0.1.9
  Using cached dm_tree-0.1.9.tar.gz (35 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: absl-py>=0.6.1 in /opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages (from dm-tree==0.1.9) (2.1.0)
Requirement already satisfied: attrs>=18.2.0 in /opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages (from dm-tree==0.1.9) (25.1.0)
Requirement already satisfied: numpy>=1.21 in /opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages (from dm-tree==0.1.9) (1.26.4)
Requirement already satisfied: wrapt>=1.11.2 in /opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages (from dm-tree==0.1.9) (1.17.2)
Building wheels for collected packages: dm-tree
  Building wheel for dm-tree (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [110 lines of output]
      /opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/dist.py:270: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_py
      creating build/lib.macosx-11.0-arm64-cpython-312/tree
      copying tree/sequence.py -> build/lib.macosx-11.0-arm64-cpython-312/tree
      copying tree/__init__.py -> build/lib.macosx-11.0-arm64-cpython-312/tree
      copying tree/tree_test.py -> build/lib.macosx-11.0-arm64-cpython-312/tree
      copying tree/tree_benchmark.py -> build/lib.macosx-11.0-arm64-cpython-312/tree
      running build_ext
      cmake version 3.31.5

      CMake suite maintained and supported by Kitware (kitware.com/cmake).
      Found CMake
      -- The CXX compiler identification is AppleClang 16.0.0.16000026
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Found Python3: /opt/homebrew/Caskroom/miniforge/base/envs/flygym/bin/python3.12 (found version "3.12.8") found components: Interpreter Development Development.Module Development.Embed
      Current build type is: Release
      PROJECT_BINARY_DIR is: /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312
      CMake Deprecation Warning at /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312/_deps/absl-src/CMakeLists.txt:22 (cmake_minimum_required):
        Compatibility with CMake < 3.10 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
        to tell CMake that the project requires at least <min> but has been updated
        to work with policies introduced by <max> or earlier.


      CMake Warning at /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312/_deps/absl-src/CMakeLists.txt:70 (message):
        A future Abseil release will default ABSL_PROPAGATE_CXX_STD to ON for CMake
        3.8 and up.  We recommend enabling this option to ensure your project still
        builds correctly.


      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE
      CMake Deprecation Warning at /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312/_deps/pybind11-src/CMakeLists.txt:8 (cmake_minimum_required):
        Compatibility with CMake < 3.10 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
        to tell CMake that the project requires at least <min> but has been updated
        to work with policies introduced by <max> or earlier.


      -- pybind11 v2.10.1
      -- Performing Test HAS_FLTO
      -- Performing Test HAS_FLTO - Success
      -- Performing Test HAS_FLTO_THIN
      -- Performing Test HAS_FLTO_THIN - Success
      -- Configuring done (5.3s)
      -- Generating done (0.3s)
      -- Build files have been written to: /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312
      [  0%] Building CXX object _deps/absl-build/absl/base/CMakeFiles/absl_log_severity.dir/log_severity.cc.o
      In file included from /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312/_deps/absl-src/absl/base/log_severity.cc:15:
      /private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/build/temp.macosx-11.0-arm64-cpython-312/_deps/absl-src/absl/base/log_severity.h:18:10: fatal error: 'array' file not found
         18 | #include <array>
            |          ^~~~~~~
      1 error generated.
      make[2]: *** [_deps/absl-build/absl/base/CMakeFiles/absl_log_severity.dir/log_severity.cc.o] Error 1
      make[1]: *** [_deps/absl-build/absl/base/CMakeFiles/absl_log_severity.dir/all] Error 2
      make: *** [all] Error 2
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/setup.py", line 119, in <module>
          setuptools.setup(
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 186, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
          dist.run_commands()
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 983, in run_commands
          self.run_command(cmd)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/dist.py", line 999, in run_command
          super().run_command(command)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command
          cmd_obj.run()
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/command/bdist_wheel.py", line 379, in run
          self.run_command("build")
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 339, in run_command
          self.distribution.run_command(command)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/dist.py", line 999, in run_command
          super().run_command(command)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command
          cmd_obj.run()
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/command/build.py", line 136, in run
          self.run_command(cmd_name)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 339, in run_command
          self.distribution.run_command(command)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/dist.py", line 999, in run_command
          super().run_command(command)
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command
          cmd_obj.run()
        File "/private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/setup.py", line 64, in run
          self.build_extension(ext)
        File "/private/var/folders/_q/v5ggb5yx0wb0pdqngv64zfwm0000gp/T/pip-install-u5pth36a/dm-tree_c2ba2aa5ee474701b65542c7b61b5367/setup.py", line 105, in build_extension
          subprocess.check_call([
        File "/opt/homebrew/Caskroom/miniforge/base/envs/flygym/lib/python3.12/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['cmake', '--build', 'build/temp.macosx-11.0-arm64-cpython-312', '--config', 'Release']' returned non-zero exit status 2.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dm-tree
  Running setup.py clean for dm-tree
Failed to build dm-tree
ERROR: Failed to build installable wheels for some pyproject.toml based projects (dm-tree)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions