1 |
Hi, |
2 |
|
3 |
I have to sadly report that currently the new blas infrastructure from the |
4 |
science overlay is broken on at least OS X prefix. For example sage doesn't |
5 |
start with the following message: |
6 |
sage |
7 |
---------------------------------------------------------------------- |
8 |
| Sage Version 4.7.2.alpha2, Release Date: 2011-08-24 | |
9 |
| Type notebook() for the GUI, and license() for information. | |
10 |
---------------------------------------------------------------------- |
11 |
********************************************************************** |
12 |
* * |
13 |
* Warning: this is a prerelease version, and it may be unstable. * |
14 |
* * |
15 |
********************************************************************** |
16 |
--------------------------------------------------------------------------- |
17 |
ImportError Traceback (most recent call last) |
18 |
|
19 |
/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/IPython/ipmaker.pyc |
20 |
in force_import(modname, force_reload) |
21 |
61 reload(sys.modules[modname]) |
22 |
62 else: |
23 |
---> 63 __import__(modname) |
24 |
64 |
25 |
65 |
26 |
|
27 |
/Users/frb15/Desktop/Gentoo/usr/bin/ipy_profile_sage.py in () |
28 |
5 preparser(True) |
29 |
6 |
30 |
----> 7 import sage.all_cmdline |
31 |
8 sage.all_cmdline._init_cmdline(globals()) |
32 |
9 |
33 |
|
34 |
/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/all_cmdline.py |
35 |
in () |
36 |
12 try: |
37 |
13 |
38 |
---> 14 from sage.all import * |
39 |
15 from sage.calculus.predefined import x |
40 |
16 preparser(on=True) |
41 |
|
42 |
/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/all.py in () |
43 |
73 from time import sleep |
44 |
74 |
45 |
---> 75 from sage.misc.all import * # takes a while |
46 |
76 |
47 |
77 from sage.misc.sh import sh |
48 |
|
49 |
/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/misc/all.py |
50 |
in |
51 |
() |
52 |
79 from func_persist import func_persist |
53 |
80 |
54 |
---> 81 from functional import (additive_order, |
55 |
82 sqrt as numerical_sqrt, |
56 |
83 arg, |
57 |
|
58 |
/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/misc/functional.py |
59 |
in () |
60 |
36 |
61 |
37 |
62 |
---> 38 from sage.rings.complex_double import CDF |
63 |
39 from sage.rings.real_double import RDF, RealDoubleElement |
64 |
40 |
65 |
|
66 |
ImportError: |
67 |
dlopen(/Users/frb15/Desktop/Gentoo/usr/lib/python2.7/site-packages/sage/rings/complex_double.bundle, |
68 |
2): Symbol not found: _cblas_caxpy |
69 |
Referenced from: /Users/frb15/Desktop/Gentoo/usr/lib/libgsl.0.dylib |
70 |
Expected in: dynamic lookup |
71 |
|
72 |
The key word is dynamic lookup. On OS X most library have an install_name that |
73 |
is losely speaking similar to a rpath. Library declare their install_name and |
74 |
the install_name of all the libraries they depend on. But you can use "dynamic |
75 |
look up" to get the kind of behavior you would expect on linux. For |
76 |
some reason |
77 |
switching to the new infrastructure break the dynamic look up of cblas |
78 |
for gsl, |
79 |
and probably scipy and other. I don't know if it is limited to python |
80 |
extension |
81 |
(in OS X speak bundles, on linux they appear as .so but in fact they may have |
82 |
more in common with plugins). |
83 |
|
84 |
I also don't know if it is broken on other prefix, I suspect linux |
85 |
prefixes are |
86 |
OK. |
87 |
|
88 |
Francois |