You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Python] Pyarrow fails to import liblz4 when installed with Conda #55467
changed the title [-]Pyarrow fails to import libz4 when installed with Conda[/-][+][Python] Pyarrow fails to import libz4 when installed with Conda[/+]on Nov 10, 2026
I have installed miniforge on my arm64 macOS (M1), created 3 separate envs with pyarrow 25.0.1, 26.0.0 and 26.0.1. and found discrepancies on how pyarrow is linked to lz4 via otool. Note I was not able to reproduce the failure because I have Homebrew's lz4 installed at that path.
(and for pa-26-0-0, pa-26-0-1 respectively) I was able to get:
pyarrow=25.0.1
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
== pa-25-0-1
@rpath/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
@rpath/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
pyarrow=26.0.0
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
== pa-26-0-0
@rpath/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
@rpath/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
pyarrow=26.0.1
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
== pa-26-0-1
/opt/homebrew/opt/lz4/lib/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
/opt/homebrew/opt/lz4/lib/liblz4.1.dylib (compatibility version 1.0.0, current version 1.10.0)
In the last run the link is set to /opt/homebrew/opt/lz4/ instead of @rpath/liblz4.1.dylib. I think this belongs to conda-forge, cc @raulcd
@h-vetinari should we apply this diff on the recipe:
diff --git a/recipe/build.sh b/recipe/build.sh
index b725cc07..2f924e25 100644
--- a/recipe/build.sh+++ b/recipe/build.sh@@ -52,6 +52,11 @@ if [[ "${target_platform}" == "linux-aarch64" ]] || [[ "${target_platform}" == "
export CMAKE_BUILD_PARALLEL_LEVEL=3
fi
+# native osx-arm64 runners have Homebrew in /opt/homebrew, which CMake searches by default+if [[ "${target_platform}" == "osx-arm64" ]]; then+ CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_IGNORE_PREFIX_PATH=/opt/homebrew"+fi+
# IPO produces segfaults in the test suite on macOS x86-64
if [[ "$target_platform" == "osx-64" ]]; then
CMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
I think homebrew is messing up lz4 here for the latest published pyarrow on macOS arm64.
changed the title [-][Python] Pyarrow fails to import libz4 when installed with Conda[/-][+][Python] Pyarrow fails to import liblz4 when installed with Conda[/+]on Nov 10, 2026
Activity
[-]Pyarrow fails to import libz4 when installed with Conda[/-][+][Python] Pyarrow fails to import libz4 when installed with Conda[/+]AlenkaF commentedon Nov 10, 2026
Thank you for the report!
I have installed miniforge on my arm64 macOS (M1), created 3 separate envs with pyarrow 25.0.1, 26.0.0 and 26.0.1. and found discrepancies on how pyarrow is linked to lz4 via
otool. Note I was not able to reproduce the failure because I have Homebrew's lz4 installed at that path.Using these commands
(and for pa-26-0-0, pa-26-0-1 respectively) I was able to get:
pyarrow=25.0.1
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
pyarrow=26.0.0
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
pyarrow=26.0.1
Linking lz4-c-1.10.0-hdca3b7d_2 (when creating the env)
In the last run the link is set to
/opt/homebrew/opt/lz4/instead of@rpath/liblz4.1.dylib. I think this belongs to conda-forge, cc @raulcdraulcd commentedon Nov 10, 2026
I think this is related to:
and:
@h-vetinari should we apply this diff on the recipe:
I think homebrew is messing up lz4 here for the latest published pyarrow on macOS arm64.
[-][Python] Pyarrow fails to import libz4 when installed with Conda[/-][+][Python] Pyarrow fails to import liblz4 when installed with Conda[/+]h-vetinari commentedon Nov 10, 2026
Can you try again now that the builds from conda-forge/arrow-cpp-feedstock#2109 are online?