[SciPy-Dev] installation of scipy on Mac OS X 10.7

Ben Willmore bdeb at willmore.eu
Tue Aug 9 12:09:48 EDT 2011


I have spent a day attempting to get a version of scipy that passes unit tests on Mac OS X 10.7. I hope the results of my investigations (below) are useful to others trying to do the same thing.

Ben


== Introduction

I have attempted to obtain a version of scipy on Mac OS X 10.7 that passes 
unit tests, both by downloading it, or by compiling against the system's
python, using the three C compilers available, and various compile flags.


== Conclusions

1. Both Enthought Python 7.1 and the scipy superpack crash during scipy unit 
tests.

2. Compilation with the default C compiler (llvm-gcc-4.2) also leads to a
crash during unit tests.

3. Compilation using either of the other C compilers (gcc-4.2 or clang) 
allows scipy to complete unit tests, only if the fortran flag --ff2c is used.
In both cases, scipy passes almost all tests -- producing errors on one, and
failing two more. With gcc-4.2, numpy passes all tests. With clang, numpy 
fails one test.

4. The following recipe was most successful for me:

* Remove everything in /usr/local and /Library/Python/2.7/site-packages
  (BEWARE! These directories may well contain stuff you care about)
  
* Install gfortran from here:
  http://r.research.att.com/gfortran-lion-5666-3.pkg

mkdir ~/tmp
cd ~/tmp
git clone git://github.com/numpy/numpy.git
cd numpy
export CC=gcc-4.2
export CXX=g++-4.2
export FFLAGS=-ff2c
python setupegg.py build --fcompiler=gfortran
sudo python setupegg.py install

cd ~/tmp
git clone git://github.com/scipy/scipy.git
cd scipy
export CC=gcc-4.2
export CXX=g++-4.2
export FFLAGS=-ff2c
python setupegg.py build --fcompiler=gfortran
sudo python setupegg.py install

(repeat for matplotlib, ipython ...)


== Details of test results

= Enthought python 7.1
numpy.test(): OK
scipy.test(): Crash (Segmentation fault)


= Scipy superpack
numpy.test(): 3 failures:
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, 1, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, -1, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, 0.0, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, -0.0, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, inf, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, -inf, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, nan, 
 inf, inf, inf)
FAIL: test_umath_complex.TestCsqrt.test_special_values(<ufunc 'sqrt'>, -inf, 
 1, 0.0, inf)
scipy.test(): Crash (Abort trap)


= Compilation from scratch (see above for recipe)

= llvm-gcc-4.2
= (no compiler flags)
numpy.test(): OK
scipy.test(): Crash (Segmentation fault: 11)


= gcc-4.2
= CC=gcc-4.2 CXX=g++-4.2
numpy.test(): OK
scipy.test(): Hang (during ARPACK tests)


= clang
= CC=clang CXX=clang++
numpy.test(): 1 failure:
FAIL: Test basic arithmetic function errors
AssertionError: Type <type 'numpy.complex64'> did not raise fpe error ''.
scipy.test(): Hang (during ARPACK tests)


= llvm-gcc-4.2 and -ff2c
= FFLAGS=-ff2c
numpy.test(): OK
scipy.test(): Crash (Segmentation fault: 11)


= gcc-4.2 and -ff2c
= CC=gcc-4.2 CXX=g++-4.2 FFLAGS=-ff2c
numpy.test(): OK
scipy.test(): 1 error, 2 failures:
ERROR: test_arpack.test_hermitian_modes(True, <gen-hermitian>, 'F', 2, 'SA', 
 None, None, <function aslinearoperator at 0x1098cd500>)
FAIL: test_iterative.test_convergence(<function bicg at 0x1098cdd70>, 
 <nonsymposdef>)
FAIL: test_expon (test_morestats.TestAnderson)


= clang and -ff2c
= CC=clang CXX=clang++ FFLAGS=-ff2c
numpy.test(): 1 failure:
FAIL: Test basic arithmetic function errors
AssertionError: Type <type 'numpy.complex64'> did not raise fpe error ''.
scipy.test(): 1 error, 2 failures:
ERROR: test_arpack.test_hermitian_modes(True, <gen-hermitian>, 'F', 2, 'SA', 
 None, None, <function aslinearoperator at 0x1098cd500>)
FAIL: test_iterative.test_convergence(<function bicg at 0x1098cdd70>, 
 <nonsymposdef>)
FAIL: test_expon (test_morestats.TestAnderson)









More information about the SciPy-Dev mailing list