[
https://issues.apache.org/jira/browse/ARROW-2326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16548466#comment-16548466
]
Wes McKinney commented on ARROW-2326:
-------------------------------------
Here's what otool shows for libarrow.dylib:
{code}
$ otool -L
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow.10.dylib
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow.10.dylib:
@rpath/libarrow.10.dylib (compatibility version 10.0.0, current version
10.0.0)
@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)
/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}
If I load the shared libraries manually things do work
{code}
>>> import ctypes
>>>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_system.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_system.dylib',
handle 7fa101d01ea0 at 0x10a795be0>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_filesystem.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_filesystem.dylib',
handle 7fa101c56a10 at 0x10a795c18>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_regex.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_boost_regex.dylib',
handle 7fa101c66a50 at 0x10a795be0>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow.10.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow.10.dylib',
handle 7fa101d093e0 at 0x10a795c18>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_python.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libarrow_python.dylib',
handle 7fa101c66970 at 0x10a795be0>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libparquet.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libparquet.dylib',
handle 7fa101c66e60 at 0x10a795c18>
>>> ctypes.CDLL('/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libplasma.dylib')
<CDLL
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyarrow/libplasma.dylib',
handle 7fa101d13260 at 0x10a795be0>
>>> import pyarrow
WORKS
{code}
I suspect we need to use {{install_name_tool}} to "fix" these shared libraries.
One possible helpful reference
http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on-osx/
> [Python] cannot import pip installed pyarrow on OS X (10.9)
> -----------------------------------------------------------
>
> Key: ARROW-2326
> URL: https://issues.apache.org/jira/browse/ARROW-2326
> Project: Apache Arrow
> Issue Type: Bug
> Components: Python
> Affects Versions: 0.8.0
> Environment: OS X (10.9), Python 3.6
> Reporter: Paul Ivanov
> Priority: Major
> Fix For: 0.10.0
>
>
> {code:java}
> $ pip3 install pyarrow --user
> Collecting pyarrow
> Using cached pyarrow-0.8.0-cp36-cp36m-macosx_10_6_intel.whl
> Requirement already satisfied: six>=1.0.0 in
> ./Library/Python/3.6/lib/python/site-packages (from pyarrow)
> Collecting numpy>=1.10 (from pyarrow)
> Using cached
> numpy-1.14.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
> Installing collected packages: numpy, pyarrow
> Successfully installed numpy-1.14.2 pyarrow-0.8.0
> $ python3
> Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
> [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import pyarrow
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File
> "/Users/pi/Library/Python/3.6/lib/python/site-packages/pyarrow/__init__.py",
> line 32, in <module>
> from pyarrow.lib import cpu_count, set_cpu_count
> ImportError:
> dlopen(/Users/pi/Library/Python/3.6/lib/python/site-packages/pyarrow/lib.cpython-36m-darwin.so,
> 2): Library not loaded: @rpath/libarrow.0.dylib
> Referenced from:
> /Users/pi/Library/Python/3.6/lib/python/site-packages/pyarrow/lib.cpython-36m-darwin.so
> Reason: image not found
> {code}
> I dug into it a bit and found that in older versions of install.rst, Wes
> mentioned that XCode 6 had trouble with rpath, so not sure if that's what's
> going on here for me. I'm on 10.9, I know it's really old, so if these wheels
> can't be made to run on my ancient OS, I just wanted to report this so the
> wheels uploaded to PyPI can reflect this incompatibility, if that is indeed
> the case. I might also try some otool / install_name_tool tomfoolery to see
> if I can get a workaround for myself.
> Thank you!
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)