Closed certik closed 9 years ago
But when importing, it fails with:
In [1]: from scipy import linalg
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-23128485f750> in <module>()
----> 1 from scipy import linalg
/local/certik/bld/profile/ckcybplill5a/lib/python2.7/site-packages/scipy/linalg/__init__.py in <module>()
155 from .linalg_version import linalg_version as __version__
156
--> 157 from .misc import *
158 from .basic import *
159 from .decomp import *
/local/certik/bld/profile/ckcybplill5a/lib/python2.7/site-packages/scipy/linalg/misc.py in <module>()
3 import numpy as np
4 from numpy.linalg import LinAlgError
----> 5 from . import blas
6
7 __all__ = ['LinAlgError', 'norm']
/local/certik/bld/profile/ckcybplill5a/lib/python2.7/site-packages/scipy/linalg/blas.py in <module>()
129 import numpy as _np
130
--> 131 from scipy.linalg import _fblas
132 try:
133 from scipy.linalg import _cblas
ImportError: liblapack.so: cannot open shared object file: No such file or directory
So here is a better patch that seems to fix all problems:
diff --git a/pkgs/scipy.yaml b/pkgs/scipy.yaml
index aa8f62f..be1ce4d 100644
--- a/pkgs/scipy.yaml
+++ b/pkgs/scipy.yaml
@@ -1,8 +1,20 @@
-extends: [distutils_package]
+extends: [distutils_package, libflags]
dependencies:
- build: [numpy]
- run: [numpy]
+ build: [lapack, numpy]
+ run: [lapack, numpy]
sources:
- url: http://downloads.sourceforge.net/scipy/scipy-0.13.3.tar.gz
key: tar.gz:vhrty7xamdbvzvog5y5mtzpjxo4zegox
+
+build_stages:
+ - when: platform == 'linux'
+ name: set-lapack-paths
+ after: libflags
+ before: install
+ handler: bash
+ bash: |
+ export LDFLAGS="$LDFLAGS -shared"
+ export ATLAS=$LAPACK_DIR
+ export BLAS=$LAPACK_DIR
+ export LAPACK=$LAPACK_DIR
Now it works:
In [1]: from scipy import linalg
In [2]:
I'm in the middle of a meeting but as a quick reaction, yes, we want to add explicit dependencies to blas/lapack and this is the right way to do it.
@ahmadia no rush, it works on my computer so it's just a matter of figuring out how to fix it for everybody. I thought we don't want to explicitly depend on lapack
or openblas
but rather on blas
and allow the user to configure blas in his profile and then packages like scipy
would work with whatever the user provides.
So I think a better way is to export some general variables in the blas
package, use those in scipy
and then let the user set those in his or her profile.
/cc @cekees
I see what you mean, but aren't you explicitly depending on lapack here?
In my patch I am explicitly depending on lapack. But I think we shouldn't be.
Due to missing BLAS/LAPACK:
The following patch fixes it on my machine:
@ahmadia any ideas how to make this work for any BLAS / LAPACK that the user configures using things like:
?