NumPy and SciPy are
two great Python packages for scientists, as is the popular
Matplotlib. However, installing NumPy and
SciPy is not for the faint hearted if you install your Python packages
via pip. Assuming you have fortran,
blas, lapack and atlas already installed it is actually quite a slow
installation, especially SciPy. NumPy took 46 seconds to install,
whereas SciPy took 6 mins and 50 seconds on my MacBook Pro. So what if
you install once and forget? Two problems with that. First I use
mktmpenv when debugging issues. Second I also use
tox to test against multiple version of
Python and/or Django. All of a sudden 6 build configurations is 42
minutes of SciPy compilation!
Let’s not forget Windows users, Fortran - I don’t think so and they should be able to enjoy pip and virtualenv as much as any Python developer.
The obvious solution is for SciPy to be packaged with wheel, the new Python binary distribution format. However, I appreciate that would be very hard for the authors, but hopefully one day.
In the meantime Anaconda might be of interest. It is like apt-get/yum for scientific Python, but a new feature has just been announced, you can pip install anaconda itself then take advantage of the binary distributions it provides for you.
Want easy installation of NumPy stack in *your* Python? pip install conda now works! Then conda init, then conda install scikit-learn— Travis Oliphant (@teoliphant) November 17, 2013
So try this (assuming you have pip, virtualenv and virtualenvwrapper installed)
$ mktmpenv $ pip install conda $ conda init $ conda install scipy
SciPy plus NumPy and numerous dependencies are installed in under a minute! Obviously, you can not convert this to a requirements.txt per se, but using Fabric you can make a task to install conda and then the conda packages all with a one liner.