Theano fails due to NumPy Fortran mixup under Ubuntu
I had the same problem, and after reviewing the source code, user212658's answer seemed like it would work (I have not tried it). I then looked for a way to deploy user212658's hack without modifying the source code.
Put these lines in your theanorc file:
[blas]ldflags = -lblas -lgfortran
This worked for me.
Have you tried to recompile NumPy from the sources?
I'm not familiar with the Ubuntu package system, so I can't check what's in your dist-packages/numpy
. With a clean archive of the NumPy
sources, you should have a setup.py
at the same level as the directories numpy
, tools
and benchmarks
(among others). I'm pretty sure that's the one you want to use for a python setup.py build
.
[EDIT]
Now that you have recompiled numpy
with the proper --fcompiler
option, perhaps could you try to do the same with Theano
, that is, compiling directly from sources without relying on a apt-get
or even pip
. You should have a better control on the build process that way, which will make debugging/trying to find a solution easier.
I had the same problem. The solution I found is to add a hack in theano/gof/cmodule.py to link against gfortran whenever 'blas' is in the libs. That fixed it.
class GCC_compiler(object): ... @staticmethod def compile_str(module_name, src_code, location=None, include_dirs=None, lib_dirs=None, libs=None, preargs=None): ... cmd.extend(['-l%s' % l for l in libs]) if 'blas' in libs: cmd.append('-lgfortran')