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
I am on a up-to-date Arch Linux install with python 3.6.3 and libev 4.24. I cloned the repositories and checked out the 2.2.3 tag. The build and installation went fine either when I build my own aerospike-client-c or I build the one provided in AUR, both with libev.
However when I launch python and import aerospike, I end up with an ImportError:
$ python
Python 3.6.3 (default, Oct 24 2017, 14:48:20)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import aerospike
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib/python3.6/site-packages/aerospike.cpython-36m-x86_64-linux-gnu.so: undefined symbol: ev_io_start
I can see that the shared object is not linked with libev:
During the build, there is no -lev in the gcc command (there are the -lpthread, -lssl and so on). To fix that, I added ev in the libraries list in setup.py:
$ ldd /usr/lib/python3.6/site-packages/aerospike.cpython-36m-x86_64-linux-gnu.so
[snip]
libev.so.4 => /usr/lib/libev.so.4 (0x00007f6171d99000)
[snip]
$ python
Python 3.6.3 (default, Oct 24 2017, 14:48:20)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import aerospike
>>>
I don't think it is a correct fix for everyone, as it is possible to build aerospike-client-c with libev, libevent or libuv.
The text was updated successfully, but these errors were encountered:
Apologies for the delayed response. The Aerospike Python client doesn't actually use any of the async features or event frameworks provided with the Async C client. So I would suggest building a C client without the optional event loop support, and using that as the basis for the Python Client.
I will add a note about that to our documentation for building the Python client with a pre-existing C client.
With pip (>=19.0) and latest python client (>=3.8.0), you should be able to install on linux without needing to clone the c client or install any other dependencies anymore.
I am on a up-to-date Arch Linux install with python 3.6.3 and libev 4.24. I cloned the repositories and checked out the 2.2.3 tag. The build and installation went fine either when I build my own aerospike-client-c or I build the one provided in AUR, both with libev.
However when I launch python and import aerospike, I end up with an ImportError:
I can see that the shared object is not linked with libev:
During the build, there is no
-lev
in the gcc command (there are the-lpthread
,-lssl
and so on). To fix that, I addedev
in thelibraries
list in setup.py:After a rebuild all is fine:
I don't think it is a correct fix for everyone, as it is possible to build aerospike-client-c with libev, libevent or libuv.
The text was updated successfully, but these errors were encountered: