I’ve used Strawberry Perl on my Windows XP and Windows 7 dev rigs for several years now. It includes MingW to compile C code in any CPAN modules which use it for speedups. Some CPAN modules will not install without it if they do not have pure-Perl (PP) versions. Now, about Python.
Recently, I began evaluating the scientific python distribution Python(x,y). Right now, I have ActivePython installed. But, ActivePython’s free version is still at Python 2.7.2, while the latest in the 2.7.x series is 2.7.5. There’s no sign of it being updated any time soon, either. To install NumPy and other scientific programming libraries, I have to download the binaries provided by each project. That includes, SciPy, numexpr, AstroPy, tables, PIL, PyFITS, PyWCS…you get the idea: its a long list. Upgrading is time consuming, to put it nicely. But, this is necessary since any Python extensions must be compiled using the same C compiler as “regular” Python as provided by the Python team. So, I decided to use Python(x,y) since it has the same philosophy as Strawberry Perl: provide a C compiler!
…and here is where it gets interesting. On my system path, Strawberry Perl’s GCC comes first. This is great for installing Perl modules from CPAN, but not to so great for compiling C code in Python extensions. You see, Strawberry Perl’s version of GCC is 4.7 while Python(x,y)’s is 4.5. If I switch them on my system path so that Python(x,y)’s GCC comes first, then my Perl modules will be binary incompatible with the Perl interpreter!
Argh!
I really want to escape package management for Window’s distributions of scripting languages. I don’t want ActiveState’s ppm for Perl or whatever they use in ActivePython. Anaconda and Enthought (not too free) both provide ActiveState-like distributions of Python which include scientific coding packages; Anaconda seems better and more up to date. Shall I switch to Anaconda, and go back to installing *.exe packages for Windows python packages? I love using pip, but they’ll pry Strawberry Perl from my cold, dead hands before I give it up.
Leave a comment