ScriptEditor Rhino Wip 9

Hi,

What changed in Rhino9 Wip dependencies? There is something happening with numpy.

@eirannejad Can you try to run this in v9 ?

#! python3

# venv: timber_connections_v9

# r: wood-nano==0.3.5, compas-wood==2.4.0, compas, wood-rui==0.2.2

ScriptEditor.log (85.6 KB)

Root Cause

  1. Rhino 9 WIP is using Python 3.13.4
  2. compas (dependency of your packages) requires numpy<2,>=1.15.4 (line 211)
  3. This constraint resolves to numpy 1.26.4 - the latest numpy 1.x version
  4. numpy 1.26.4 does NOT support Python 3.13 - it only provides pre-built wheels up to Python 3.12
  5. pip tries to compile numpy 1.26.4 from source for Python 3.13, which fails with C compilation errors

The Conflict

Package Requires Problem
compas 2.8.1/2.15.0 numpy<2 Blocks numpy 2.x
Python 3.13 numpy 2.x numpy 1.x has no wheels for 3.13

Sorry I missed this. Will test today and report back.

Update:

I can see errors on Windows. Somewhat different from what is listed in your ScriptEditor.log file above. I will dig more.

 pip install error | Collecting wood-nano==0.3.5
  Using cached wood_nano-0.3.5-cp312-abi3-win_amd64.whl.metadata (3.1 kB)
Collecting compas-wood==2.4.0
  Using cached compas_wood-2.4.0-py2.py3-none-any.whl.metadata (3.7 kB)
Collecting compas
  Using cached compas-2.15.0-py3-none-any.whl.metadata (7.0 kB)
Collecting wood-rui==0.2.2
  Using cached wood_rui-0.2.2-py3-none-any.whl.metadata (807 bytes)
Collecting compas
  Using cached compas-2.8.1-py3-none-any.whl.metadata (7.2 kB)
Collecting jsonschema (from compas)
  Using cached jsonschema-4.26.0-py3-none-any.whl.metadata (7.6 kB)
Collecting networkx>=3.0 (from compas)
  Using cached networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB)
Collecting numpy<2,>=1.15.4 (from compas)
  Using cached numpy-1.26.4.tar.gz (15.8 MB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'error'

  error: subprocess-exited-with-error
  Preparing metadata (pyproject.toml) did not run successfully.
  exit code: 1
  [22 lines of output]
  + C:\Users\ein\.rhinocode\py313-rh9\site-envs\timber_connections_v9-bWDqDPGP\Scripts\python.exe C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c\vendored-meson\meson\meson.py setup C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c\.mesonpy-_adypuw0 -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c\.mesonpy-_adypuw0\meson-python-native-file.ini
  The Meson build system
  Version: 1.2.99
  Source dir: C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c
  Build dir: C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c\.mesonpy-_adypuw0
  Build type: native build
  Project name: NumPy
  Project version: 1.26.4
  C compiler for the host machine: clang (clang 19.1.5 "clang version 19.1.5")
  C linker for the host machine: clang link 14.50.35724.0
  C++ compiler for the host machine: clang++ (clang 19.1.5 "clang version 19.1.5")
  C++ linker for the host machine: clang++ link 14.50.35724.0
  Cython compiler for the host machine: cython (cython 3.0.12)
  Host machine cpu family: x86
  Host machine cpu: i686
  Program python found: YES (C:\Users\ein\.rhinocode\py313-rh9\site-envs\timber_connections_v9-bWDqDPGP\Scripts\python.exe)
  Need python for x86, but found x86_64
  Run-time dependency python found: NO (tried sysconfig)
  ..\meson.build:41:12: ERROR: Python dependency not found
  A full log can be found at C:\Users\ein\AppData\Local\Temp\pip-install-1sjxxqvf\numpy_ebe1637807d245d2acf0e5785c6d508c\.mesonpy-_adypuw0\meson-logs\meson-log.txt
  [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.

macOS seems to be fine on the first try. Is there a wood-nano test I can run to ensure it loads and works?