Python is my current favorite programming language. I don’t switch favorites often, but I have an appreciation for many other languages. Heck, as an undergraduate I actually wrote code on TI Explorer Lisp machines.
One of the Python community’s mantras is “batteries included.” There’s a belief that any decent programmer should be able to build fairly sophisticated applications with the stock Python interpreter. Translation, a large standard library.
Even so, over the years I’ve found myself installing a bunch of different 3rd party libraries every time I go through a new Python implementation. I’ve had to do a few of these over the last couple of days. A core set of post-“batteries” essentials have coaleseced. Here they are in no particular order:
-
Numpy, for array and matrix operations
-
Scipy, which includes Numpy, for advanced matrix operations and signal processing
-
lxml, for high speed, standards conformant XML processing using the Python-centric ElementTree API
-
PIL, the Python Imaging Library, for munging images of all formats
-
networkx to conduct various network/graph generation and processing experiments
-
The Universal Feed Parser since you never know when you need to slurp down and process an RSS or Atom feed
-
virtualenv to easily create customized, isolated versions of a stock Python intepreter
Python logo cribbed from the Python website, copyright the Python Software Foundation.