tl,dr: ruckig macos binaries uploaded to pypi are mislabeled as universal2 and do not work on M1 macs
I recently ran into issues when trying to use python 3.11 pypi package of ruckig.
$ python 01_position.py main?
Traceback (most recent call last):
File "/Users/<path>/ruckig/examples/01_position.py", line 3, in <module>
from ruckig import InputParameter, OutputParameter, Result, Ruckig
ImportError: dlopen(/Users/<path>/lib/python3.11/site-packages/ruckig.cpython-311-darwin.so, 0x0002): tried: '/Users/<path>/lib/python3.11/site-packages/ruckig.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/<path>/lib/python3.11/site-packages/ruckig.cpython-311-darwin.so' (no such file), '/Users/<path>/lib/python3.11/site-packages/ruckig.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
I did a bit of digging into the pypi package ruckig-0.9.2-cp311-cp311-macosx_12_0_universal2.whl and it turns out it is not a real universal2 binary.
This is the output I get when I try to check the shared object's arch
based on this post https://stackoverflow.com/a/65811061, I added "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64", to setup.py and was able to build universal binaries.
tl,dr: ruckig macos binaries uploaded to pypi are mislabeled as universal2 and do not work on M1 macs
I recently ran into issues when trying to use python 3.11 pypi package of ruckig.
I did a bit of digging into the pypi package
ruckig-0.9.2-cp311-cp311-macosx_12_0_universal2.whl
and it turns out it is not a real universal2 binary.This is the output I get when I try to check the shared object's arch
What the expected output of a universal binary should look like
based on this post https://stackoverflow.com/a/65811061, I added
"-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64",
tosetup.py
and was able to build universal binaries.related upstream issue https://github.com/pypa/wheel/issues/406