Solace Python API on Mac M1 ?

uherbst
uherbst Member, Employee Posts: 121 Solace Employee

Hi,

I tried to install Solace Python API on Mac M1 and run some scripts with it.

pip install solace-pubsubplus

⇒ Successful

Running some script:

Unable to load core library from [/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib]. Exception: dlopen(/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib, 0x0006): tried: '/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (no such file), '/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
Traceback (most recent call last):
File "/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/core/_solace_session.py", line 159, in __load_core_library
return cdll.LoadLibrary(shared_lib_path_default)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ctypes/init.py", line 454, in LoadLibrary
return self._dlltype(name)
^^^^^^^^^^^^^^^^^^^
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ctypes/init.py", line 376, in init
self._handle = _dlopen(self._name, mode)
^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: dlopen(/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib, 0x0006): tried: '/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (no such file), '/Users/uherbst/Library/Python/3.11/lib/python/site-packages/solace/messaging/lib/macosx-x86_64/libsolclient.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))

Is this expected to work ? Couldn't find any hint in Solace docs.

I tried the same action in an Ubuntu on Mac M1 - same result.

Thank you

Uli

Comments

  • Ragnar
    Ragnar Member, Employee Posts: 64 Solace Employee

    Hi Uli,

    Support for ARM based platforms (Mac M1 running MacOS and Linux) is actively in development and we expect to release packages in 2024.

    Ragnar

  • jrt
    jrt Member Posts: 2 New User
    Is there a timeline for when the arm packages will be released? I'd like to avoid using x86_64 if I can.

    Thanks.
  • Ragnar
    Ragnar Member, Employee Posts: 64 Solace Employee

    The API will be available at PyPI by March 15, 2024.

  • jrt
    jrt Member Posts: 2 New User
    Thank you for the update.
  • Misk
    Misk Member Posts: 14 ✭✭

    This will by applied for m2 and m3 also?

  • marc
    marc Member, Administrator, Moderator, Employee Posts: 898 admin

    Hi @Misk,

    Yes! The March release should work with all Mac M series chips. An official announcement post should come next month upon release :)