Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.

You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.

As I've been learning the Python language I've been trying to find a comfortable IDE for my purposes. Naturally, the first one I encountered was the "built-in" IDLE, but this quickly proved to be too bare-bones. There are a number of more advanced ones that support code completion, automatic documentation and program structure diagramming, and refactoring.

I've been using SPE (Stani's Python Editor, http://pythonide.stani.be/ ) as it was the first "advanced" one I found, but I've run into roadblocks with it and it's got me frustrated. The last version with an installer had a broken winpdb (the debugger), and while there are newer releases, it seems like they quit building installers some time ago. In fact, it's difficult to find any prebuilt distribution for those of us without svn.

I've come across some others that seem more promising. Notably, pydev and Eric both boast of refactoring, which could be a boon.

Would anyone care to throw in two cents about the features, quality, and support of these tools (or any others)?

I use WingWare IDE for python. What I liked, which might be available these day in other IDEs, was the the auto-complete even in the Python Shell. Good for trying out short snippets before integrating them into the main code.

Although I don't have any experience with the solution I offer: PyDevmy friend who is a very adept C/C++/Java programmer (with 20 years of programming experience under his belt) who swears by the Eclipse IDE. The original intent or this IDE is JAVA related programming, but there are a boatload of plug-ins of other programming languages available for it.

With that in mind and after taking a quick look, there was also a plug-in for Python. Price-wise it couldn't be better (free EPL license). The comments that you can see when you visit the link are very positive, which should make up for my lack of experience ;-).

FWIW: When I was first starting to learn Python, it was suggested to me by a guy I know who breathes code, that I avoid IDEs and just use a really good editor such as Notepad++. His feeling was that if you go the IDE route initially, you will need to learn two things at the same time - Python - and your IDE.

I took that advice and I'm glad I did. It allowed me to just focus on learning the language without getting too bogged down in all the "productivity and convenience" things that would really be more applicable to somebody who already knew how to program in Python.

If you're learning something, about the only thing you really want is syntax highlighting. Go beyond that and you run the risk of "throwing out the baby with the bathwater." Sometimes it's good to have to fully type out full lines of code and make mistakes. Repetition and really looking at lines of code can go a long way to reinforcing your learning experience and helping you memorize things that need to be available for instant recall. It's sort of like cooking - try learning how to do something from scratch first before you start looking for ways to do it quicker or more easily. You'll always learn a lot more doing it "the hard way" first..

Once I got more comfortable using Python, the value of using an IDE became much more apparent. Because before I knew something about Python, I couldn't really use most of what the IDE could provide.

It depends on how much coding experience you have. If you have already worked with IDEs and/or know another object oriented language already, then you can already appreciate the advantages of using an IDE to do things like take advantage of class outlines and templates. However, if you are new to both, then I suggest following 40hz's advice and just worry about learning the language using something like notepad++. In the case of python, you are also lucky to have something inbetween, IPython. For learning about IPython, I can't stress enough that you should watch the videos on ShowMeDo before you even install it.

I have been coding Python for a couple of years now and I use a IPython and Pydev Extensions at the same time. They work very well together.

I agree with tinjaw. If you already have some IDE experience, you'll definitely want to find an IDE for your new language... integreted help / API reference and visual debugging makes dealing with a new language a lot easier.

A couple of you noted pydev, so I looked a little deeper there. It bothered me a little that it's an extension to Eclipse. That makes it kinda heavy-weight, and it seems to be a second-class citizen there; the environment certainly isn't designed for the peculiarities of python.

On the other hand, I tried to download Eric, and it turns out that (as far as I can tell) you just can't get it for Windows without building parts of it yourself. It needs Qt (which is pretty darned big), but more significantly, it also needs QScintilla2. I was completely unable to find a Windows-built download of this.

If you want to get into GUI stuff with python, I recommend BoaConstructor.http://boa-constructor.sourceforge.net/Uses WxWidgets for building GUI's and a casual trip through the help file 'Getting Started' section will get you on your way.It's a bit of a task to get it installed on Windows, but it does work.

A couple of you noted pydev, so I looked a little deeper there. It bothered me a little that it's an extension to Eclipse. That makes it kinda heavy-weight, and it seems to be a second-class citizen there; the environment certainly isn't designed for the peculiarities of python.

Although pydev is a plugin to Eclipse, it does work very well. BTW, if you didn't realize, there are two parts to pydev - the opensource basics and the commercial extensions. I am on my second year of subscription to the commercial extensions and a happy camper.

Yes, it is a bit heavy-weight, but that is because Eclipse is meant as a general purpose tool out-of-the-box. You could limit what is loads to thin things down. I, however, use it because I use Ecplise as my main development tool for other stuff as well. So I get the added benefit of it being the same tool for my Java developments as well as other things.

Pydev is also under active development, as has been since day one. It was also recently brought under a corporate umbrella which will directly fund its further development under the same developer, Fabio.

There still isn't *any* good tools for GUI development under Python. I beg my contacts at Borland come CodeGear come Embarcardero for Delphi for Python. With it I couLD RULE THE WORLD!!!

If you're learning something, about the only thing you really want is syntax highlighting. Go beyond that and you run the risk of "throwing out the baby with the bathwater."

That would be more like throwing into the tub: the baby, the bathwater, some soap, some rubber duckies, a teddy bear and a LEGO set

That said, I disagree - just a little. Syntax highlighting is very helpful for spotting syntax errors, which abound when you begin learning a language. But for me, the lack of IDE (or using a weak IDE) becomes a showstopper for another reason: no code insight. For me, the hardest thing is figuring out what I can do with the language, i.e. the capabilities of the library.

A few times I've tried learning Python by attempting to write what should normally be much simpler/faster to do in Python than in Delphi. Of course, while I knew exactly how to do it in Delphi, but in Pyton I had no idea where to begin. Every time, with only one exception, I went back to Delphi, having to write more glue code and create throw-away classes, but I worked fast because I already knew how to do it. In Python, without an IDE capable of code insight, searching in the documentation ended up taking enough time to become a tedium.

If I can type objectinstance - dot - Ctrl+Space and have a list of methods and their signatures, I'm happy, and I can try things out in no time and actually get results. Without it, a new language appears impenetrable.

That, and I don't think I'd ever attempt to create a GUI in a scripting language by typing... control such-and-such, top=10, left=5, width=100, etc, for dozens and dozens of controls. It just doesn't seem to make sense, as long as you have an option of using a visual designer.

I use Wingware's Wing IDE myself, and highly recommend it. I also wanted to second 40hz's recommendation of learning the language first, then learning the IDE. But, having said that, if you know Python well, I find Wing IDE a huge boon, especially for larger projects.

I was an SPE enthusiast for some time. Having a real debugger becomes a must for certain projects. But now that I've done more Zope/Plone development, I find myself resorting to my favourite programming editor: PSPad. It's free (as in beer), it has an advanced templating system (they call it "clips"), it's faster/lighter than Eclipse and does a great job for most text-editing tasks.

I tried Komodo/ActiveState for a bit, but have tentatively settled on Wing IDE. I like its convenient integration of interpreter, editor with smart symbol lookup, and interactive debugger, but I do still keep my old familiar editor open in parallel, when I want to do significant refactoring. For now I'm using the $35 personal version of Wing IDE, but expect to eventually consider the $180 Pro version for its greater code browsing abilities.

I use Wingware's Wing IDE myself, and highly recommend it. I also wanted to second 40hz's recommendation of learning the language first, then learning the IDE. But, having said that, if you know Python well, I find Wing IDE a huge boon, especially for larger projects.

I'll agree 100%. WingIDE is so far best IDE for Python developers I have been testing/using. Absolutely worth of every cent (and it's not even expensive!!).

WingIDE is so far best IDE for Python developers I have been testing/using. Absolutely worth of every cent (and it's not even expensive!!).

According to their feature matrix, the Personal edition doesn't include such features as "Class browser" and "Code folding", which from my investigations appears to be a baseline feature of any Python IDE. Based on this, I get the impression that it's a toy until you get to the Professional edition, which at $179 isn't cheap.

I have heard from the netbeans team (in reply to a comment by me on twitter) that they are adding python next, and that it will be available (beta) in November after they release 2.5They usually work hard to integrate debugging, language documentation, common frameworks, instructions to add more frameworks etc. so it might well be a very strong contender for Python IDE by December.