I am not a python developer but occasionally I find a need to do something in Python. Over the years I tried Python and Python plus Eclipse. About a year ago I tried Pythonxy and liked it. I initially downloaded the package since I wanted to do some statistical analysis using python and this was an easy way to get all of the dependencies. Here are some of features I like and dislike.
- Naturally it includes Python and a wide assortment of packages including NumPy, SciPy, Matplotlib, and IPython. It is kind of a no brainer to set up a Python environment with a full complement of libraries.
- It includes a nice full featured python IDE, Spyder. If you do not like Spyder you can always go back to Scite and IDLE.
- It includes several packages I wanted to play with Eclipse, Qt, wxPython, and MinGW although Eclipse is now an extra package.
- It is a large download, 477 MB.
- I converted my statistical analysis to R so I have little use for the scientific libraries.
- In some cases you will be working with older packages, such as IPython(0.10.2) and MinGW(4.5) and upgrading these packages breaks other things. In the case of MinGW I installed the newest Msys/MinGW version over the old installed version(MinGW32-xy) and everything seems to be working. However, upgrading IPython to the latest version breaks the enhanced command consoles for IPython.
- Occasionally I have problems installing Pythonxy at work. Mcafee flags the log2del.exe as a trojan while Security Essentials at home does not. This is annoying since several people have reported Mcafee’s report as a false positive.
Python(x,y) is a free scientific and engineering development software for numerical computations, data analysis and data visualization based on Python programming language, Qt graphical user interfaces (and development framework) and Eclipse integrated development environment.
Although I would say I am conversant in Python and can see why a lot of people like it, it is not necessary for any of my job functions. In fact I recently converted the only python program used at work over to PowerShell. It was a trivial program that has been written a million times in a multitude of scripting languages. In this case it had a bug so it was a fairly trivial exercise to convert it over to Microsoft’s favorite scripting language.
Scarcely could I imagine that I would be seriously playing with python just a couple of weeks later. The trigger for this event was a blog post on SQLServerCentral.com called Python for the SQL Server DBA. In the article I was intrigued when the author said he used Python(x,y). I had not heard of it so I checked out the web site, python(x,y) – Python for Scientists, and decided to convert an Excel spreadsheet graph over to python. The graph is a fairly standard multiple line plot of time data. This is the type of graph you can create in Excel in about five minutes.
It took a lot longer to create the graph in python but I am not disappointed. Much of my time was spent learning how to manipulate Matplotlib to achieve the desired graph. Matplotlib is a library for making 2D plots of arrays in Python and looks a lot like MATLAB™ . Since my knowledge of Matlab was nil, I had a lot of catching up. The flexibility of Matplotlib to customize a graph reminded me a lot of SAS/GRAPH. That is both the good and bad news. Although Excel has a lot of graphing options and I recommend it for most graphing requests, there is always some option it does not do quite right. Matplotlib overcomes those problems with lots of customization options and can be used to create some pretty exotic graphs. The bad news is there is a significant learning curve in understanding how to use those options.
Almost of all of my development for this simple graph program was done in IPython although more interactive environments like Eclipse and Spyder were available. In hindsight I would probably prefer Spyder to develop my next program. Most of my work is not very sophisticated and the lightweight integrated IDE of Spyder appealed to me more than Eclipse. Eclipse is still relatively slow at starting up. When I look at the whole python(x,y) download, the greatest contribution is the breadth of the products included in its download. You can start your work from the command line for simple programs like I did and progress all the way up to fairly comprehensive graphical user interface using QT and Eclipse for sophisticated programs. The python development has come a long way.