Fixed by https://github.com/liblouis/liblouis/pull/325 which has been merged upstream. The Python bindings use ctypes, and they load the .so as soon as they are imported. setup.py imports them and calls the library's version() function, rather than hard-coding a version number. This breaks crossbuilds. diff -Naur python/setup.py liblouis-3.1.0/python/setup.py --- python/setup.py 2017-03-06 05:49:10.000000000 -0800 +++ python/setup.py 2017-04-24 16:34:57.293458084 -0700 @@ -23,7 +23,6 @@ """ from distutils.core import setup -import louis classifiers = [ 'Development Status :: 4 - Beta', @@ -38,5 +37,5 @@ download_url = "http://code.google.com/p/liblouis/", license="LGPLv2.2", classifiers=classifiers, - version=louis.version().split(',')[0].split('-',1)[-1], + version='@VERSION@', packages=["louis"])