Ghhops-server not compatible with python3.13?

FYI, the ghhops-server package on PyPi does not install correctly on python3.13

calling pip install ghhops-server results in the error:

Collecting ghhops-server
  Using cached ghhops_server-1.5.5-py2.py3-none-any.whl.metadata (317 bytes)
Collecting rhino3dm (from ghhops-server)
  Using cached rhino3dm-8.9.0.tar.gz (66.0 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Using cached ghhops_server-1.5.5-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: rhino3dm
  Building wheel for rhino3dm (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for rhino3dm (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [122 lines of output]
      Using Python executable: /Library/Frameworks/Python.framework/Versions/3.13/bin/python3.13
      running bdist_wheel
      running build
      running build_py
      creating build/lib.macosx-10.13-universal2-cpython-313/rhino3dm
      copying src/rhino3dm/__init__.py -> build/lib.macosx-10.13-universal2-cpython-313/rhino3dm
      running egg_info
      writing src/rhino3dm.egg-info/PKG-INFO
      writing dependency_links to src/rhino3dm.egg-info/dependency_links.txt
      writing top-level names to src/rhino3dm.egg-info/top_level.txt
      reading manifest file 'src/rhino3dm.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching '*.pyd' under directory 'src/rhino3dm'
      warning: no files found matching '*.so' under directory 'src/rhino3dm'
      adding license file 'LICENSE'
      writing manifest file 'src/rhino3dm.egg-info/SOURCES.txt'
      copying src/rhino3dm/__init__.pyi -> build/lib.macosx-10.13-universal2-cpython-313/rhino3dm
      copying src/rhino3dm/py.typed -> build/lib.macosx-10.13-universal2-cpython-313/rhino3dm
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 42, in run
        File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 472, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
                 ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     **kwargs).stdout
                     ^^^^^^^^^
        File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 554, in run
          with Popen(*popenargs, **kwargs) as process:
               ~~~~~^^^^^^^^^^^^^^^^^^^^^^
        File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 1036, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              pass_fds, cwd, env,
                              ^^^^^^^^^^^^^^^^^^^
          ...<5 lines>...
                              gid, gids, uid, umask,
                              ^^^^^^^^^^^^^^^^^^^^^^
                              start_new_session, process_group)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 1966, in _execute_child
          raise child_exception_type(errno_num, err_msg, err_filename)
      FileNotFoundError: [Errno 2] No such file or directory: 'cmake'
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/Users/em/Desktop/untitled folder/venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
          ~~~~^^
        File "/Users/em/Desktop/untitled folder/venv/lib/python3.13/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/em/Desktop/untitled folder/venv/lib/python3.13/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,
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                              metadata_directory)
                                              ^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 434, in build_wheel
          return _build(['bdist_wheel', '--dist-info-dir', metadata_directory])
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 422, in _build
          return self._build_with_temp_dir(
                 ~~~~~~~~~~~~~~~~~~~~~~~~~^
              cmd,
              ^^^^
          ...<3 lines>...
              self._arbitrary_args(config_settings),
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          )
          ^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 403, in _build_with_temp_dir
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 516, in run_setup
          super().run_setup(setup_script=setup_script)
          ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/build_meta.py", line 318, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 143, in <module>
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/__init__.py", line 117, in setup
          return distutils.core.setup(**attrs)
                 ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 183, in setup
          return run_commands(dist)
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 199, in run_commands
          dist.run_commands()
          ~~~~~~~~~~~~~~~~~^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 954, in run_commands
          self.run_command(cmd)
          ~~~~~~~~~~~~~~~~^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 991, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/command/bdist_wheel.py", line 407, in run
          self.run_command("build")
          ~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 991, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/command/build.py", line 135, in run
          self.run_command(cmd_name)
          ~~~~~~~~~~~~~~~~^^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command
          self.distribution.run_command(command)
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/dist.py", line 991, in run_command
          super().run_command(command)
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
        File "/private/var/folders/vm/mfby2rkn0g153d2tph6hz8r00000gn/T/pip-build-env-sl4qhbn3/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 973, in run_command
          cmd_obj.run()
          ~~~~~~~~~~~^^
        File "<string>", line 44, in run
      RuntimeError: CMake must be installed to build the following extensions: rhino3dm._rhino3dm
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for rhino3dm
Failed to build rhino3dm
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (rhino3dm)

Note that It does appear to work on python3 < .13

best,
@ed.p.may

Make sure you have CMake (and compiler tools) installed. For Python 3.7-3.12 pip finds the pre-built wheels. We can poke @fraguada with request to include Python 3.13 as build targets since it got released on the 2024.10.07

1 Like