There is no ABI stability between major versions of pyarrow either at
the Cython or C++ levels at the moment (furthermore, it seems unlikely
to be the case in the near future). I would recommend pinning the
pyarrow version you depend on and bumping the pin when new major
versions are released.

On Wed, Sep 1, 2021 at 5:50 AM Shawn Yang <shawn.ck.y...@gmail.com> wrote:
>
> I built a multi-language library based on arrow and the python
> implementation used arrow cython and c++ api. I want my library to be
> compatible with multiple pyarrow versions. But the dynamic library in my
> python implementation depended on `libarrow.xxx.dylib` and for every
> pyarrow version the `libarrow.xxx.dylib` is different. What can I do to
> make my library compatible with multiple pyarrow versions?
> When using a different pyarrow version with the version that my library was
> built with. I got the following error:
> ======================================================================================
> ERRORS
> ImportError while importing test module
> '/Users/chaokunyang/ant/Development/DevProjects/fury/python/pyfury/tests/test_vectorized.py'.
> Hint: make sure your test modules/packages have valid Python names.
> Traceback:
> ../../../../../opt/anaconda3/lib/python3.8/importlib/__init__.py:127: in
> import_module
>     return _bootstrap._gcd_import(name[level:], package, level)
> pyfury/__init__.py:53: in <module>
>     from pyfury._fury import create_row_encoder, RowData, ArrowWriter
> E   ImportError:
> dlopen(/Users/chaokunyang/ant/Development/DevProjects/fury/python/pyfury/_fury.so,
> 2): Library not loaded: @rpath/libarrow.100.dylib
> E     Referenced from:
> /Users/chaokunyang/ant/Development/DevProjects/fury/python/pyfury/_fury.so
> E     Reason: image not found
>
> My library was built with pyarrow==1.0.0, when I use pyarrow>=2.0.0, I got
> upper errors.

Reply via email to