SciPy has a number of optional dependencies, which `pip` doesn't attempt to
install. Largely because several of them are not directly Python based, and
`pip` isn't a true package manager. Without them SciPy builds and runs, but
certain pieces either run slower (in this case, parts of `scipy.sparse`) or
don't exist at all.
Near the top of the very lengthy build and compile log for SciPy there is a
brief report on which optional dependencies are present at time of build.
Presumably you don't have umfpack. It's also possible you do, but lack the
development headers - but for the purposes of this argument, let's assume
you don't.
1. The first step is to get umfpack. Doing this varies across platforms,
but if you're on linux check repos first. If not, look online for the best
method; I've always gotten it this way.
2. Next step is to get the development headers for umfpack. Usually in
Linux package managers (yum, apt, etc.) these have the same name with
`'-dev'` appended. They're what SciPy needs to find and use umfpack.
3. Finally, you'll need to remove and rebuild SciPy with `$ pip
uninstall scipy` followed by `$pip install scipy`. The new build should
auto-detect umfpack and build appropriately.
Hopefully that helps. God help you if you're on Windows; I sure can't.
Josh
On Thursday, October 3, 2013 1:21:43 AM UTC-5, Juan Nunez-Iglesias wrote:
>
> Hi guys,
>
> How do I build scipy with umfpack to silence this error:
>
> Exception AttributeError: "'UmfpackContext' object has no attribute '_symbolic'" in <bound method UmfpackContext.__del__ of <scipy.sparse.linalg.dsolve.umfpack.umfpack.UmfpackContext object at 0x101b62050>> ignored
>
> and speed up random_walker? I've just been doing a pip install scipy till
> now.
>
> Juan.
>