So there's this user interface stack called Kivy. http://kivy.org/

It has an unusual feature: it can deploy the same Python app to desktop 
platforms as well as Android and iOS. I'm trying to deploy a Kivy app to 
Android, and this app uses igraph.

Of course that means I have to compile igraph for ARM processors--but I 
think I've already accomplished that. I only ran into trouble when I tried 
to import igraph in the Python interpreter running on my Android tablet. It 
*did* import--but then it informed me that it couldn't locate 
libigraph.so.0. I made extra sure that the name of the library matched, and 
that it was in the -- well, not actually the LD_LIBRARY_PATH, but the same 
directory where the rest of the app's shared object files already lived. I 
also tried putting it in the same directory as _igraph.so, which is the 
library wherein Python threw that error. No difference was made.

I surmise that Android is only letting the Python process access shared 
objects "one level deep," and not letting it get any shared objects linked 
inside of those. I don't know whether this limitation is deliberate or 
what; maybe it's a bug in the particular build of Python.

In any case, I think that if I could compile igraph *and* the Python API 
into the *same* shared object file, I could use it all the same. But I 
don't know how to do this, and I don't think the Makefiles have any 
provision for it. Feel free to correct me.

So: how can I compile igraph and its Python bindings into _igraph.so, thus 
avoiding the link to libigraph.so.0?

If you happen to know enough about Android to solve this another way, do 
tell.
_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help

Reply via email to