For a more painless install try Continuum's Anaconda or Enthought's Canopy. They bundle together the most important scientific libraries, work cross-platform and in this case include all dependencies.
Wow, I just checked these out. Thanks for pointing me in this direction.
At times numpy/scipy/matplotlib have proven pretty troublesome to install with pip. I think they have it working now, but it's still not 100% reliable.
The main problem is that they have system library dependencies that pip doesn't handle.
I think all you need is build-essentials and python-dev.
Nope, numpy needs libblas and scipy needs libatlas, both of which have to installed from the system package manager. I slap my forehead every time I move to a new system and find that the pip install in the virtualenv failed.
Matplotlib depends on freetype, libpng, and libjpeg as well. Numpy can be built without any external dependencies, but it will be a very slow installation. You're better off with an accelerated BLAS library (e.g. ATLAS/MKL/etc) and some sort of LAPACK library. Some of numpy's functionality also needs a fortran compiler to build. At any rate, there are other system dependencies beyond a basic compiler and the header files for python.
Ah I think the reason why I didn't think I needed BLAS/LAPACK is because I install R on the server first which installs those as shared libraries.
This is why you use debian / ubuntu.
Something like 70% of R users are on windows.
Its 2013 - Microsoft needs to bite the bullet and start shipping a C/C++ compiler as part of windows :)
I write a couple of python c extensions - it would be nice if you could assume your users would be able to compile the extensions out of the box without expecting them to go install another piece of software.
Same goes for OS X, having to install a multi GB IDE to get gcc is ridiculous.
I do have XCode, but I am wondering if I could have just installed gcc with macports since they seem to have it.
it's on the todo list. i was hesitant to put all of them in the dependencies list since not all are pip installable (all of the time)