Eventual-Inc / Daft

Distributed DataFrame for Python designed for the cloud, powered by Rust
https://getdaft.io
Apache License 2.0
1.76k stars 105 forks source link

Unable to install daft on M2 Pro mac #2211

Closed universalmind303 closed 2 weeks ago

universalmind303 commented 2 weeks ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Steps to reproduce the behavior:

> python -m pip install -U getdaft
> python -c "import daft";                                                                                            04/30/2024 05:06:12 PM
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/me/Development/daft-example/.venv/lib/python3.11/site-packages/daft/__init__.py", line 26, in <module>
    from daft.daft import build_type as _build_type
ImportError: dlopen(/Users/me/Development/daft-example/.venv/lib/python3.11/site-packages/daft/daft.abi3.so, 0x0002): Library not loaded: /opt/homebrew/opt/xz/lib/liblzma.5.dylib
  Referenced from: <C63B9E6D-3659-33B8-8821-FB3C4AFFE625> /Users/me/Development/daft-example/.venv/lib/python3.11/site-packages/daft/daft.abi3.so
  Reason: tried: '/opt/homebrew/opt/xz/lib/liblzma.5.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/xz/lib/liblzma.5.dylib' (no such file), '/opt/homebrew/opt/xz/lib/liblzma.5.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))

Expected behavior doesn't panic on import

Additional context we can statically link liblzma to avoid this all together. I previously opened up some issues in various repos for similar issues

samster25 commented 2 weeks ago

@universalmind303 Yeah that would be great if you can push up a PR for this. I didn't realize we dynamically link to liblzma. on Linux we don't seem to have it

    linux-vdso.so.1 (0x00007ffca55ad000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f80f8ee3000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f80f8dfc000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f80f8bd3000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f8100b61000)
universalmind303 commented 2 weeks ago

@samster25 feel free to assign to me and I can get a PR together pretty quick