[SciPy-dev] Error building from svn on Intel Macs.

Damian Eads eads@soe.ucsc....
Wed Jun 4 03:52:43 CDT 2008


David Cournapeau wrote:
> Damian Eads wrote:
>> There is an example file in the Scipy source tree, site.cfg.example that 
>> you can modify and save as site.cfg. site.cfg is necessary so the Scipy 
>> build script can properly locate dependencies. AFAK, UMFPACK is required 
>> to build scipy.stats, which depends on scipy.sparse.
> 
> I would be surprised if this were true (umfpack is only available under 
> the GPL, and numpy/scipy have a policy to not depend on non BSD code). I 
> don't have umfpack, and up to recently, I could build scipy from the trunk.

Hi David,

You are the build expert here so I will defer to you.

Recalling from personal experience, the only way I could get Scipy to 
build properly with support for scipy.stats is by building UMFPACK.

I just checked out a fresh copy, did not edit the site.cfg.example file 
to prevent setup.py from finding UMFPACK, and got the same errors as 
Christopher.

[eads@pumpkin trunk]
creating build/src.linux-i686-2.5/scipy/sparse/linalg/dsolve
creating build/src.linux-i686-2.5/scipy/sparse/linalg/dsolve/umfpack
   adding 'scipy/sparse/linalg/dsolve/umfpack/umfpack.i' to sources.
swig: scipy/sparse/linalg/dsolve/umfpack/umfpack.i
swig -python -I/usr/include/atlas -o 
build/src.linux-i686-2.5/scipy/sparse/linalg/dsolve/umfpack/_umfpack_wrap.c 
-outdir build/src.linux-i686-2.5/scipy/sparse/linalg/dsolve/umfpack 
scipy/sparse/linalg/dsolve/umfpack/umfpack.i
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:192: Error: Unable to find 
'umfpack.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:193: Error: Unable to find 
'umfpack_solve.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:194: Error: Unable to find 
'umfpack_defaults.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:195: Error: Unable to find 
'umfpack_triplet_to_col.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:196: Error: Unable to find 
'umfpack_col_to_triplet.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:197: Error: Unable to find 
'umfpack_transpose.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:198: Error: Unable to find 
'umfpack_scale.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:200: Error: Unable to find 
'umfpack_report_symbolic.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:201: Error: Unable to find 
'umfpack_report_numeric.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:202: Error: Unable to find 
'umfpack_report_info.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:203: Error: Unable to find 
'umfpack_report_control.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:215: Error: Unable to find 
'umfpack_symbolic.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:216: Error: Unable to find 
'umfpack_numeric.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:225: Error: Unable to find 
'umfpack_free_symbolic.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:226: Error: Unable to find 
'umfpack_free_numeric.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:248: Error: Unable to find 
'umfpack_get_lunz.h'
scipy/sparse/linalg/dsolve/umfpack/umfpack.i:272: Error: Unable to find 
'umfpack_get_numeric.h'
error: command 'swig' failed with exit status 1
[eads@pumpkin trunk]$

If I comment out the code

     #config.add_subpackage('umfpack')

in scipy/sparse/linalg/dsolve/setup.py, I get the following import error 
when importing scipy.stats.

In [2]: import scipy.stats
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)

/home/eads/work/tst/<ipython console> in <module>()

/tmp/qt/lib/python2.5/site-packages/scipy/stats/__init__.py in <module>()
       5 from info import __doc__
       6
----> 7 from stats import *
       8 from distributions import *
       9 from rv import *

/tmp/qt/lib/python2.5/site-packages/scipy/stats/stats.py in <module>()
     190 from numpy import array, asarray, dot, ma, zeros, sum
     191 import scipy.special as special
--> 192 import scipy.linalg as linalg
     193 import numpy as np
     194

/tmp/qt/lib/python2.5/site-packages/scipy/linalg/__init__.py in <module>()
      11 from blas import *
      12
---> 13 from iterative import *
      14
      15

/tmp/qt/lib/python2.5/site-packages/scipy/linalg/iterative.py in <module>()
       3 # Deprecated on January 26, 2008
       4
----> 5 from scipy.sparse.linalg import isolve
       6 from numpy import deprecate
       7

/tmp/qt/lib/python2.5/site-packages/scipy/sparse/linalg/__init__.py in 
<module>()
       4
       5 from isolve import *
----> 6 from dsolve import *
       7 from interface import *
       8 from eigen import *

/tmp/qt/lib/python2.5/site-packages/scipy/sparse/linalg/dsolve/__init__.py 
in <module>()
       3 from info import __doc__
       4
----> 5 import umfpack
       6 #__doc__ = '\n\n'.join( (__doc__,  umfpack.__doc__) )
       7 del umfpack

ImportError: No module named umfpack

In [3]:

So, I guess, in a nutshell, it was this cursory experience that led me 
to assume UMFPACK was an essential dependency.

Good point about licensing -- I suppose UMFPACK being released under the 
GPL would preclude it from being a mandatory dependency.

Damian


More information about the Scipy-dev mailing list