[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