Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Asking as a Python beginner, what IDEs ("GUIs/editors") do others use for Python coding?

If you can just give the name (for example, Textpad, Eclipse ..) that will be enough. If it is already mentioned, you can just vote for it.

But if you can also give some more comparative information, that will be much appreciated.


Update: Results so far

                                       Rapid Application Development -.
                                           Integrated DB Support -+   |
                                                GUI Designer  -+  |   |
                                             Unit Testing -+   |  |   |
                                        Code Templates -.  |   |  |   |
                                       Code Folding -+  |  |   |  |   |
                           UML Editing / Viewing -+  |  |  |   |  |   |
                              Line Numbering -+   |  |  |  |   |  |   |
                         Bracket Matching -+  |   |  |  |  |   |  |   |
                          Smart Indent -+  |  |   |  |  |  |   |  |   |
         Source Control Integration -+  |  |  |   |  |  |  |   |  |   |
                   Error Markup  -+  |  |  |  |   |  |  |  |   |  |   |
  Integrated Python Debugging -+  |  |  |  |  |   |  |  |  |   |  |   |
    Multi-Language Support -+  |  |  |  |  |  |   |  |  |  |   |  |   |
  Auto Code Completion -+   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 Commercial / Free --+  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 Cross Platform -+   |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
                _|___|__|___|__|__|__|__|__|__|___|__|__|__|___|__|___|_
                |CP|C/F|AC|MLS|PD|EM|SC|SI|BM|LN|UML|CF|CT|UT|UID|DB|RAD|comments
                +--+---+--+---+--+--+--+--+--+--+---+--+--+--+---+--+---+
 BlackAdder     |Y | C |  |   |  |  |  |Y |  |  |   |Y |  |  |   |  |   |
 BlueFish       |L |   |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 Boa Constructor|Y | F |Y |   |Y |Y |  |Y |Y |Y | Y |Y |Y |  |   |  |   |
 ConTEXT        |W | C |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 DABO           |Y |   |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 DreamPie       |  | F |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 Dr.Python      |  | F |  |   |  |Y |  |  |  |  |   |  |  |  |   |  |   |
 Editra         |Y | F |Y | Y |  |  |Y |Y |Y |Y |   |Y |  |  |   |  |   |
 Emacs          |Y | F |Y | Y |Y |Y |Y |Y |Y |Y | Y |Y |Y |Y |   |  |   |
 Eric Ide       |Y | F |Y |   |Y |Y |  |Y |  |Y |   |Y |  |Y |   |  |   |
 E-Texteditor   |W |   |  |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 Geany          |Y | F |Y*| Y |  |  |  |Y |Y |Y |   |Y |  |  |   |  |   |* very limited
 Gedit          |Y | F |Y¹| Y |  |  |  |Y |Y |Y |   |  |Y²|  |   |  |   |¹ with plugin ² sort of
 Idle           |Y | F |Y |   |  |  |  |  |  |  |   |  |  |  |   |  |   |
 JEdit          |Y | F |  | Y |  |  |  |  |Y |Y |   |Y |  |  |   |  |   |
 KDevelop       |Y | F |  | Y |  |  |Y |Y |Y |Y |   |Y |  |  |   |  |   |
 Komodo         |Y |C/F|Y | Y |Y |Y |Y |Y |Y |Y |   |Y |Y |Y |   |Y |   |
 NetBeans       |Y | F |Y | Y |Y |  |Y |Y |Y |Y | Y |Y |Y |Y |   |  | Y |
 NotePad++      |W | F |  | Y |  |  |  |  |  |Y |   |  |  |  |   |  |   |
 Pfaide         |W | C |Y | Y |  |  |  |Y |Y |Y |   |Y |Y |  |   |  |   |
 PIDA           |LW| F |Y | Y |  |  |  |Y |Y |Y |   |Y |  |  |   |  |   |VIM based
 PTVS           |W | F |Y | Y |Y |Y |Y |Y |Y |Y |   |Y |  |  |Y* |  | Y |*WPF bsed
 PyCharm        |Y | C |Y | Y*|Y |  |Y |Y |Y |Y |   |Y |  |Y |   |  |   |* javascript
 PyDev(Eclipse) |Y | F |Y | Y |Y |Y |Y |Y |Y |Y | Y |Y |Y |Y |   |  |   |
 Pyscripter     |W | F |Y |   |Y |Y |  |Y |  |Y |   |  |Y |Y |   |  |   |
 PythonWin      |W | F |Y |   |Y |  |  |Y |Y |  |   |Y |  |  |   |  |   |
 SciTE          |Y | F |  | Y |  |Y |  |  |Y |Y |   |Y |Y |  |   |  |   |
 ScriptDev      |W | C |Y | Y |Y |Y |  |Y |Y |Y |   |Y |Y |  |   |  |   |
 SPE            |  | F |Y |   |  |  |  |  |  |  | Y |  |  |  |   |  |   |
 Spyder         |Y | F |Y |   |Y |Y |  |Y |Y |Y |   |  |  |  |   |  |   |
 Sublime Text   |Y | C |Y | Y |  |  |  |Y |Y |Y |   |  |Y |  |   |  |   |extensible w/python
 TextMate       |M |   |  | Y |  |  |  |Y |Y |Y |   |Y |Y |  |   |  |   |
 UliPad         |Y | F |Y | Y |Y |  |  |Y |Y |  |   |  |Y |Y |   |  |   |
 Vim            |Y | F |Y | Y |Y |Y |Y |Y |Y |Y |   |Y |Y |Y |   |  |   |
 WingIde        |Y | C |Y | Y*|Y |Y |Y |Y |Y |Y |   |Y |Y |Y |   |  |   |* support for C
 Zeus           |W | C |  |   |  |  |Y |Y |Y |Y |   |Y |Y |  |   |  |   |
                +--+---+--+---+--+--+--+--+--+--+---+--+--+--+---+--+---+
                |CP|C/F|AC|MLS|PD|EM|SC|SI|BM|LN|UML|CF|CT|UT|UID|DB|RAD|
                |__|___|__|___|__|__|__|__|__|__|___|__|__|__|___|__|___|

Acronyms used:

  • CP - Cross Platform
  • C - Commercial
  • F - Free
  • AC - Automatic Code-completion
  • MLS - Multi-Language Support
  • PD - Integrated Python Debugging
  • EM - ErrorMarkup
  • SC - Source Control integration
  • SI - Smart Indent
  • BM - Bracket Matching
  • LN - Line Numbering
  • UML - UML editing / viewing
  • CF - Code Folding
  • CT - Code Templates
  • UT - Unit Testing
  • UID - GUI Designer (for example, Qt, Eric, ..)
  • DB - integrated database support
  • RAD - Rapid application development support
  • L - Linux
  • W - Windows
  • M - Mac

I don't mention basics like syntax highlighting as I expect these by default.


This is a just dry list reflecting your feedback and comments, I am not advocating any of these tools. I will keep updating this list as you keep posting your answers.

PS. Can you help me to add features of the above editors to the list (like auto-complete, debugging, etc.)?

share
51  
VIM also has: AC (CTRL+N), MLS(a lot of languages supported), PD(plugin), EM(plugin), SC(plugin), SI(option to enable), BM(option to enable), LN(option to enable), CF(default), CT(snippetEMU) –  igorgue Apr 1 '09 at 20:09
37  
Emacs above Vim? LIES. –  Tyler Sep 3 '10 at 13:16
9  
1  
there is no uid ide for python? why no one in list gained it? –  amin Apr 13 '11 at 22:47
show 31 more comments

locked by Robert Harvey Mar 10 '12 at 4:11

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

122 Answers

Vim - For me it's the best choice, regardless of technology I'm using at the moment. It's not so hard to learn as it looks and during the work you are becoming more and more productive.

share
51  
I second vim, not only because of its power, but also because it pays off to learn it since you can reuse this knowledge a lot. Vim is omnipresent across platforms and is a great option for terminal editing, shining especially through telnet/ssh. –  nachik Feb 16 '09 at 10:39
29  
vim rocks[ESC]100i![ESC]111 –  pi. Apr 7 '09 at 7:34
19  
And you can extend Vim with plugins written in Python. –  richq May 10 '09 at 17:49
12  
Vim is like an Intermediate Editor Language. All major IDEs (Eclipse, NetBeans, Komodo and Visual Studio I know for sure) have solid vim modes or key bindings, which makes it much easier to switch between them. It is definitely worth it to learn. –  Jerph Jan 6 '10 at 5:18
8  
I'm just glad to see that there's at least 84 other fanboys of VIM out there. Maybe I'll have a chance to meet one someday. :-) –  James Schek Mar 29 '10 at 16:09
show 15 more comments

I use Eclipse plus the PyDev plugin. PyDev has support for PyLint, which is another free download. With those three installed, you have an environment that can parse your python and spot errors (almost all errors, i.e bad vars, bad types, bad includes) as you type.

You can also debug from within the IDE, including single stepping. You can see all your Python projects at one glance in your workspace. Selecting text in the IDE will evaluate it in the current environment (like visual studio's tooltips). It can launch and debug several processes from the one debugger and handles Twisted pretty well. I currently use it for working with Twisted and Django.

If you go with Eclipse, you should consider these plugins

  • Aptana - either as a plugin or as an alterntive to Eclipse (extra features in commercial)
  • Mylyn - Task management, often included already. Integrates with lots of other task managers
  • Subclipse - SVN client built into eclipse
  • Goto file - Open files in current project quickly with keyboard
  • Multi Clipboard - Management of the last X things you cut / pasted

Also, outside of Eclipse, I suggest you get IPython for your command line debugging pleasure. I prefer it over the standard command line shell and IDLE (The GUI shell).

share
3  
+1 for PyDev, and I would actually recommend that you shell out for the PyDev Extensions, it makes the environment much smarter fabioz.com/pydev –  Henrik Gustafsson Feb 5 '09 at 18:09
34  
As of Sep 3 2009, PyDev Extensions is open source, and included free with PyDev –  itsadok Sep 6 '09 at 6:27
10  
Since it went open-source, PyDev is a no-brainer choice. –  Uri Apr 28 '10 at 20:38
show 11 more comments

Emacs has very good Python support, both wrt. syntax highlighting and getting the indention levels right.

Note that Emacs has a rather steep learning curve. But once you master it, it will help you be very productive in any language.

If you're interested, the Emacs wiki is a great starting point.

share
add comment

PyCharm from Jetbrains is great in prerelease and will be excellent by the time it's officially released in the fall (in the northern hemisphere) of 2010. It's got

  • CP - Cross Platfom
  • C - Commercial
  • AC - Automatic Code-completion
  • PD - Integrated Python Debugging
  • EM - ErrorMarkup
  • SC - Source Control integration
  • SI - Smart Indent
  • BM - Bracket Matching
  • LN - Line Numbering
  • CF - Code Folding
  • UT - Unit Testing

It's got by far the best rename support I've seen in a Python IDE, and about 10 other refactorings so far; better code completion than I've seen; and definitely better code navigation (cmd-N and start typing the name of the symbol).

share
11  
I usually prefer FOSS solutions but I have to say that PyCharm is far above any other solutions, like Komodo, PyDev or Aptana Studio. –  sorin Sep 9 '10 at 11:35
1  
The very best thing about PyCharm is the Vim keymap which ships by default. –  Kenny Meyer May 6 '11 at 22:50
2  
If you're a student, PyCharm gives a significant discount to students. I tried PyCharm, and functionally, it was great, but the interface is absolutely horrible. The menus/options are completely unorganized and cluttered. –  Corey Farwell Jul 9 '11 at 0:55
1  
Best money i have ever spent, its hands down the best IDE available for django development... –  jawache Nov 4 '11 at 12:59
show 11 more comments

If you are on Windows, then PyScripter is the best FREE choice out there. It's a complete IDE with integrated debugger, and it's a single executable, so no install hassles. It's only 6-7 MB in size. It's got support for remote debugging. Code completion is good, and cross referencing is provided by simply hovering the mouse over the symbol you want to know more about. It's a well thought out project. Plus it's FREE and in active development. The latest version supports Python 3.0 as well.

Try it out. It's really good work, just like Python.

Update PyScripter's option to this list: [Windows, CP, F, AC, PD, EM, SI, LN, CT, UT].

share
16  
Strong +1. Tried a half-dozen others at least, and PyScripter is simply outstanding. You forgot the customizable hotkeys and code templates, and the fact that it's built in a lower level language so it's FAST. –  John Pirie Jun 18 '09 at 10:12
6  
Wow, that's awesome (after view->themes->default, anyway ;) –  Blorgbeard Jun 28 '09 at 21:48
6  
For lightweight scripting on windows, PyScripter is just unmatched. –  Victor Yan Jul 12 '09 at 1:45
1  
Very nice, thanks! Makes debugging much easier for this Python newb! –  Adam Neal Aug 6 '10 at 21:13
3  
PyScripter is the only IDE that I find myself starting up as often as my text editor (Notepad++ or VIM) - for all of its power, it starts up fast. –  Sean Vieira Dec 9 '10 at 16:11
show 8 more comments

+1 for Wing Professional IDE.

The "Go To Definition" and "Source Assistant" can really go a long way to assist in your Python learning.

It has Vi and Emacs Emulation too, if you need either of them. Only the UI is bad, if on Windows (as it is based on GTK). It rocks on Ubuntu.

If you are using any text editor, (Scite is my choice) then you'd do well by using IPython console. (You can do a easy_install of IPython if easy_install is installed.)

With Python itself providing debug options, and IPython and Bash shell offering good auto-complete options, it is not really that bad an option to do away with an IDE. But if you still want an IDE (as I want), Wing Professional is the best one out there.

I have also tried SPE and PyDev and am not impressed enough to consider them. Some features of PyDev include verifying whether a variable is used or not and auto-setting of different modes- Debug, PyDev, and Java Browsing when you run an application.

If you only need a good Syntax highlighting SciTE (on Windows, SciTE based Notepad++) is a good option.

If you need project organization and auto-complete with syntax highlighting, Komodo Edit is the best option. It also supports many other languages.

If you want everything but the space shuttle (minus some special features of PyDev), Wing Professional is the best IDE currently available.

It is free for non-commercial work on a public Open Source project, see https://wingware.com/store/prices.

The most important thing is to choose one and go with it.

share
show 2 more comments

I use a Mac and prefer Textmate but there are other choices. For the PC I have heard only good things about Notepad++.

share
4  
Here's one thing about Notepad++: it crashes, sometimes :) –  Robert Grant Feb 27 '09 at 16:45
4  
@Robert Doesn't everything? –  muntoo Mar 29 '11 at 4:36
add comment

See appropriate page in Python wiki and choose the one that fits your taste (have you ever heard of Emacs vs. Vim flame wars? ;)).

Personally, I'm using Textmate on Mac, Komodo Edit on Windows and PIDA on linux.

share
add comment

There is Komodo from ActiveState which is commercial, there is also Komodo Edit which is free.

share
add comment

You might want to add Sublime Text also as a possible Python IDE. It is certainly directed to more "hardcore" developers, who don't mind working with a text file when configuring its UI. :)

Its cross-platform version is in beta (Updated 23 Jan 2012), but it is an awesome free-to-try/commercial, with a lot of neat features. The most interesting one for this discussion is that it is itself partly written in Python and one may easily add Python coded plugins.

Other features include:

  • Minimap
  • Snippets
  • Macros
  • Build Systems
  • Configurable Key Bindings
  • Python Plugins (through API)
  • Multiselection (unbelivably useful and effective)
  • Python Console (for plugin development)
share
show 1 more comment

Netbeans 6.9.1, though it doesn't seem to support Python 3.X syntax yet.

share
17  
You can set up a python interpreter on your system , you don't have to use jython . –  Tempus Jan 27 '09 at 16:13
show 3 more comments

I've been a professional working with Python for 8 years and for large projects nothing has been more practical to work with than WingIde. Komodo, Eclipse, Boa, SPE, IDLE, PythonWi has always caused me grief and I always go back to WingIde. WingIde should be high on the list especially if you have to debug multi-threaded python apps, large frameworks like Zope, Django, Twisted, etc. It is cross-platform, multi-monitor, excellent support, always improving.

When you have to develop projects with hundreds of modules, WingIde is a strong choice.

share
add comment

IDLE -- Does the trick for me (on Windows). Sometimes applications have weird quirks when run with this tool; otherwise its completion features are unequalled. Ugly font rendering, use bitmap fonts. Ugly GUI. Sometimes the loopback connection breaks and restarting is required to get it working again.

PyDev -- Lacks IDLE's completion features, but features smarter indenting. Requires you to create projects beforehand; after you do that, however, just copy pasting your Python scripts to the project folder will do. Sometimes it froze hard, but I'm not running the latest versions.

Gedit -- Does the trick for me (on Linux). General purpose editor that comes with a general purpose autocomplete plugin that is actually pretty good given the premises.

Vim -- I have a beef with how Vim autoindents Python.

For the first times though, nothing beats running Python's own text shell for toying around and reading those overlong help() outputs with less (Linux only). Otherwise be prepared to scroll up a lot.

share
add comment

I like SciTE very much.

share
add comment

Up until a few months ago I was a long time user of SciTE (SCIntilla based Text Editor) but recently I've switched to using Geany, another lightweight open source Scintilla based text editor written in C. It's similar to SciTE but better in a lot of ways.

The only things I changed to make me feel more at home was the color schema (to match SciTE's) and disabling all the widgets I don't need (toolbar etc.).

A screenshot of my Geany instance

Some of the interesting features of Geany (some also apply to SciTE):

  • Folding
  • Markers (easily switch between sections of a file)
  • Simple session restore (project based files)
  • Snippets (similar to SciTE's abbreviations)
  • The ability to reorganize editor tabs

Geany (CP, F, AC*, MLS, SI, BM, LN, CF, CT)

share
1  
One feature that's high on my requirements list is a stack-like go-to-definition shortcut: I can jump to a definition, then to another and another, following a sequence of nested function calls, and then unwind the stack, returning from each jump to the place I was beforehand, in reverse order. It's a very helpful tool for understanding code, which got me hooked on the rather expensive SlickEdit ages ago. I was finally able to ditch SlickEdit when I found Geany, which is open source, cross-platform, and has this feature. –  ʇsәɹoɈ Jun 5 '10 at 4:43
show 2 more comments

I've been using Spyderlib for some time, really worth trying.

http://code.google.com/p/spyderlib/

Having to juggle between platforms, it's a lightweight, efficient editor targeted at scientific development.

Among others, it features:

  • CP - Cross Platform
  • F - Free
  • AC - Automatic Code-completion
  • PD - Integrated Python Debugging
  • EM - ErrorMarkup
  • SI - Smart Indent
  • LN - Line Numbering

It is easy to try it directly from checkout:

hg clone https://code.google.com/p/spyderlib/
cd spyderlib
python bootstrap.py

and it's a snap to install using pip install spyder or if your on a Mac with MacPorts with a simple sudo port install py26-spyder

share
show 1 more comment

Eclipse with PyDev is pretty good these days.

I did dabble a little with SPE (http://pythonide.blogspot.com/) and Eric (http://www.die-offenbachs.de/eric/index.html) but found them a bit slow.

share
add comment

Emacs (python-mode).

share
add comment

I use gedit on my Ubuntu Linux machines. It's part of the standard GNOME installation and so you will also find it on many other Linux distributions. This means that it's either installed by default or installation is just one command away. When you load it up it looks a bit like notepad does on Win XP but it is a lot more powerful.

The beauty of gedit is that it has Syntax highlighting, not just for Python, but for many other languages as well. This is great because it means that I only have to get used to one editor no matter which language I happen to be hacking in.

If wish, you can also get it to do things like bracket matching, line numbering, launch a python console etc. More details can be found at

http://www.instructables.com/id/Using-Gedit-as-a-Python-IDE/

share
show 2 more comments

Big fan of Active States's Komodo IDE, which has excellent multi-language support, debugging, code-completion, source control integration etc. There's also its free little brother Komodo Edit available which is more than capable for many day-to-day tasks.

Both are cross-platform (Windows, Mac and *nix)

share
add comment

Which editor I use depends on the OS/environment I'm working in.

share
add comment

A general purpose editor which is not mentioned too often is jEdit. After searching for an editor that suits me for years I settled on that one and use it pretty much exclusively now. Despite being java-based it feels fast and even starts up quickly on not too old computer.

share
add comment

I normally use SPE (http://pythonide.blogspot.com). It's written with wxPython and includes wxGlade as a development tool. It also has code completion, UML generator, Blender support, and built-in PyDoc viewer. There are also many other features that it comes with, not to mention that it's free to use.

share
add comment

JetBrains as recently made their PyCharm IDE available for public preview. It isn't super yet, but I can imagine that they will shore it up pretty quickly. They are known industry wide for making exceptional products.

http://www.jetbrains.com/pycharm/index.html

share
show 1 more comment

Even though I think there's a "best" choice here (whatever that means...) and it's been mentioned, I'm going to break with what everybody else here has said, and quote Andy and Dave:

Use a Single Editor Well The editor should be an extension of your hand; make sure your editor is configurable, extensible, and programmable.

If you are already skilled at an extensible editor, then keep using that -- you just have to figure out what extensions make Python easier, but chances are somebody else has already done 99.9% of the work for you.

If you aren't skilled at an extensible editor yet, then you should be! Pick one and start learning, but don't limit your search to only "what's good at Python, today?" because you weren't using Python 5 years ago and there's a good chance you won't be using Python 5 years from now. Get an editor that's good at editing text because that seems to be the only constant in this field.

share
add comment

It is not easy to recommend an IDE for python, since they all have their strong and weak points.

But here is the two I use, and why:

WingIDE. This is my preferred IDE for larger projects, and the most important reason is its debugging capabilities. No other IDE I have tried have ever come close to WingIDE in that sense. But for that, I have to sacrifice a few things, like re-factoring... and money (I use the commercial version).

PyDev with Eclipse. I have just started to use this one, and love the fact that it has re-factoring. It also has a much better code-completion than WingIDE. On the negative side: I find it to be too complex. I'm struggling with the svn integration, how the projects are done, and that I'm not able to configure it with my favorite low-contrast color scheme.

A few years back, Emacs was my favorite (for programming, reading email and usenet new). Today, I prefer a perfect IDE... of which we have none... :-)

PS: I suggest an addition to the Acronyms: REF - Refactoring.

share
show 1 more comment

The editor that comes with the python distribution (Idle) is very good for first time Python programmers.

share
add comment

I just want to update the WingIDE features. I'm referring to the 3.1 version (latest now Febr.2009):

CP, C, AC, MLS (support for C), PD, EM, SC, SI, BM, LN, CF, CT, UT

Hope you'll find this update helpful.

./alex

share
show 1 more comment

You can add Editra to the list.

(CP, F, AC, MLS, SC, SI, BM, LN, CF)

Written in python with wxPython, well done, with some nice plugins (project (SVN, etc.), code browser, comment browser, ipython shell).

With the PyStudio plugin, you get (PD, EM) added.

share
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.