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.
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.
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.
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.