[
https://issues.apache.org/jira/browse/ARROW-5874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16880355#comment-16880355
]
Wes McKinney commented on ARROW-5874:
-------------------------------------
Thanks for the report. Since adding the OpenSSL dependency we expected some
hiccups. There's a couple possible solutions
* Bundling OpenSSL shared libraries in the wheel
* Fixing the library path to not be looking for libraries in a hard-coded
location (I thought that the wheel build was supposed to fix this)
* Only linking to OpenSSL in libarrow_flight (I'm not sure that it needs to be
linked with {{pyarrow.lib}}). I think we should do this regardless
FYI: maintaining wheels is extremely difficult for us. The project, and the
Python ecosystem in general, would be much better off if everyone used conda
for complex packages like this
> [Python] pyarrow 0.14.0 macOS wheels depend on shared libs under
> /usr/local/opt
> -------------------------------------------------------------------------------
>
> Key: ARROW-5874
> URL: https://issues.apache.org/jira/browse/ARROW-5874
> Project: Apache Arrow
> Issue Type: Bug
> Components: Python
> Affects Versions: 0.14.0
> Environment: macOS 10.14.5
> Anaconda Python 3.7.3
> Reporter: Michael Anselmi
> Priority: Critical
> Labels: pyarrow, wheel
>
> Hello, and congrats on the recent release of Apache Arrow 0.14.0!
> This morning I installed pyarrow 0.14.0 on my macOS 10.14.5 system like so:
> {code:java}
> python3.7 -m venv ~/virtualenv/pyarrow-0.14.0
> source ~/virtualenv/pyarrow-0.14.0/bin/activate
> pip install --upgrade pip setuptools
> pip install pyarrow # installs
> pyarrow-0.14.0-cp37-cp37m-macosx_10_6_intel.whl
> pip freeze --all
> # numpy==1.16.4
> # pip==19.1.1
> # pyarrow==0.14.0
> # setuptools==41.0.1
> # six==1.12.0
> {code}
> However I am unable to import pyarrow:
> {code:java}
> python -c 'import pyarrow'
> # Traceback (most recent call last):
> # File "<string>", line 1, in <module>
> # File
> "/Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/__init__.py",
> line 49, in <module>
> # from pyarrow.lib import cpu_count, set_cpu_count
> # ImportError:
> dlopen(/Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/lib.cpython-37m-darwin.so,
> 2): Library not loaded: /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib
> # Referenced from:
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow.14.dylib
> # Reason: image not found
> {code}
> pyarrow is trying to load a shared library (OpenSSL in this case) from a path
> under {{/usr/local/opt}} that doesn't exist; perhaps that OpenSSL had been
> provided by Homebrew as part of your build process? Unfortunately this makes
> the pyarrow 0.14.0 wheel completely unusable on my system or any system that
> doesn't have OpenSSL installed in that location. This is a regression from
> pyarrow 0.13.0 as those wheels "just worked".
> Additional diagnostic output below. I ran {{otool -L}} on each {{.dylib}}
> and {{.so}} file in
> {{/Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow}}
> and included the output for those with dependencies under {{/usr/local/opt}}:
> {code:java}
> otool -L
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow.14.dylib
> #
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow.14.dylib:
> # @rpath/libarrow.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version
> 1.2.8)
> # @rpath/libarrow_boost_system.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> # @rpath/libarrow_boost_filesystem.dylib (compatibility version
> 0.0.0, current version 0.0.0)
> # @rpath/libarrow_boost_regex.dylib (compatibility version 0.0.0,
> current version 0.0.0)
> # /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
> version 307.5.0)
> # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.50.2)
> otool -L
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow_flight.14.dylib
> #
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow_flight.14.dylib:
> # @rpath/libarrow_flight.14.dylib (compatibility version 14.0.0,
> current version 14.0.0)
> # @rpath/libarrow.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
> version 307.5.0)
> # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.50.2)
> otool -L
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow_python.14.dylib
> #
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libarrow_python.14.dylib:
> # @rpath/libarrow_python.14.dylib (compatibility version 14.0.0,
> current version 14.0.0)
> # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.50.2)
> #
> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
> (compatibility version 150.0.0, current version 1349.64.0)
> # @rpath/libarrow_flight.14.dylib (compatibility version 14.0.0,
> current version 14.0.0)
> # @rpath/libarrow.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
> version 307.5.0)
> otool -L
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libgandiva.14.dylib
> #
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libgandiva.14.dylib:
> # @rpath/libgandiva.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # @rpath/libarrow.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version
> 1.2.8)
> # /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current
> version 5.4.0)
> # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.50.2)
> # /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
> version 307.5.0)
> otool -L
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libplasma.14.dylib
> #
> /Users/manselmi/virtualenv/pyarrow-0.14.0/lib/python3.7/site-packages/pyarrow/libplasma.14.dylib:
> # @rpath/libplasma.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # @rpath/libarrow.14.dylib (compatibility version 14.0.0, current
> version 14.0.0)
> # /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib (compatibility
> version 1.0.0, current version 1.0.0)
> # /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current
> version 307.5.0)
> # /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 1238.50.2)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)