setup.py does not work with NumPy manylinux1 wheel
Created by: siebenkopf
When I install a new virtual environment (using virtual_build.sh
from bob.nightlies
) by using the automatically downloaded NumPy wheel, I am not able to install bob.math in this environment. The error message that I get is:
$ virtualenv/bin/pip install bob.math
...
LAPACK/BLAS configuration from NumPy:
* system include directories:
* defines: -DHAVE_CBLAS=None
* linking arguments:
* libraries: openblas
* library directories: /usr/local/lib
...
/usr/bin/ld: cannot find -lopenblas
...
After some investigations, I found that the reason is that the NumPy wheel is created using openBLAS:
http://comments.gmane.org/gmane.comp.python.wheel-builders/18
which will result in the fact that the NumPy default options as used here:
https://github.com/bioidiap/bob.math/blob/master/setup.py#L124
are not working. After installing libopenblas-dev
locally, bob.math
compiles and installs, but when I try to use it, I get the error message:
$ virtualenv/bin/python
>>> import bob.math
OSError: virtualenv/local/lib/python2.7/site-packages/bob/math/libbob_math.so: undefined symbol: dsyevd_
Apparently, it still does not work, as openBLAS does not seem to come with a dsyevd_
method.
My current solution is to force NumPy to be compiled from source, but this is not a good solution for people who are not very familiar with the installation process. A better solution would be to adapt the setup.py
accordingly, i.e., to use the LAPACK/BLAS configuration that is available on the system, and do not rely on the NumPy build.