share
Stack OverflowWhat IDE to use for Python?
[+1032] [1] husayt
[2008-09-17 09:53:15]
[ python ide editor ]
[ http://stackoverflow.com/questions/81584/what-ide-to-use-for-python ]

What IDEs ("GUIs/editors") do others use for Python coding?

[+947] [2008-09-17 09:57:19] Rafał Rawicki

Results

Spreadsheet version [1]

spreadsheet screenshot

Alternatively, in plain text: (also available as a a screenshot [2])

                       Bracket Matching -.  .- Line Numbering
                        Smart Indent -.  |  |  .- UML Editing / Viewing
       Source Control Integration -.  |  |  |  |  .- Code Folding
                  Error Markup -.  |  |  |  |  |  |  .- Code Templates
Integrated Python Debugging -.  |  |  |  |  |  |  |  |  .- Unit Testing
  Multi-Language Support -.  |  |  |  |  |  |  |  |  |  |  .- GUI Designer (Qt, Eric, etc)
 Auto Code Completion -.  |  |  |  |  |  |  |  |  |  |  |  |  .- Integrated DB Support
   Commercial/Free -.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  .- Rapid Application
 Cross Platform -.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |     Development
                +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 Atom           |Y |F |Y |Y*|Y |Y |Y |Y |Y |Y |  |Y |Y |  |  |  |  |*many plugins
 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 |  |  |  |
 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 |  |Y |  |  |Y |Y |  |  |  |  |  |  |  |  |
 JEdit          |Y |F |  |Y |  |  |  |  |Y |Y |  |Y |  |  |  |  |  |
 KDevelop       |Y |F |  |Y |  |  |Y |Y |Y |Y |  |Y |  |  |  |  |  |
 Komodo         |Y |CF|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 |*pre-v7.0
 Notepad++      |W |F |Y |Y |  |Y*|Y*|Y*|Y |Y |  |Y |Y*|  |  |  |  |*with plugin
 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 |CF|Y |Y*|Y |Y |Y |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 |Y |  |  |  |  |¹Mac version is
 ScriptDev      |W |C |Y |Y |Y |Y |  |Y |Y |Y |  |Y |Y |  |  |  |  |    commercial
 Spyder         |Y |F |Y |  |Y |Y |  |Y |Y |Y |  |  |  |  |  |  |  |
 Sublime Text   |Y |CF|Y |Y |  |Y |Y |Y |Y |Y |  |Y |Y |Y*|  |  |  |extensible w/Python,
 TextMate       |M |F |  |Y |  |  |Y |Y |Y |Y |  |Y |Y |  |  |  |  |    *PythonTestRunner
 UliPad         |Y |F |Y |Y |Y |  |  |Y |Y |  |  |  |Y |Y |  |  |  |
 Vim            |Y |F |Y |Y |Y |Y |Y |Y |Y |Y |  |Y |Y |Y |  |  |  |
 Visual Studio  |W |CF|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 |  |  |  |  |
                +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 Cross Platform -'  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |     Development
   Commercial/Free -'  |  |  |  |  |  |  |  |  |  |  |  |  |  |  '- Rapid Application
 Auto Code Completion -'  |  |  |  |  |  |  |  |  |  |  |  |  '- Integrated DB Support
  Multi-Language Support -'  |  |  |  |  |  |  |  |  |  |  '- GUI Designer (Qt, Eric, etc)
Integrated Python Debugging -'  |  |  |  |  |  |  |  |  '- Unit Testing
                  Error Markup -'  |  |  |  |  |  |  '- Code Templates
       Source Control Integration -'  |  |  |  |  '- Code Folding
                        Smart Indent -'  |  |  '- UML Editing / Viewing
                       Bracket Matching -'  '- Line Numbering

Acronyms used:

 L  - Linux
 W  - Windows
 M  - Mac
 C  - Commercial
 F  - Free
 CF - Commercial with Free limited edition
 ?  - To be confirmed

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.)?

We have a comprehensive wiki page for this question https://wiki.python.org/moin/IntegratedDevelopmentEnvironments

Submit edits to the spreadsheet [3]

[1] https://docs.google.com/spreadsheets/d/1l3x94P55qoxqYbq5GosWQ7IonZ4vR-4ZyCaImiVmCSk/pubhtml
[2] http://i.stack.imgur.com/ItVKB.png
[3] https://docs.google.com/spreadsheets/d/1l3x94P55qoxqYbq5GosWQ7IonZ4vR-4ZyCaImiVmCSk/edit#gid=0&fvid=1960281650

(51) On my smartphone browser, this table is completely unreadable. - Axel
(33) Moderator Note: If you don't like the format of the table; feel free to edit the table out into a format you think is more visually appealing. The wiki-lock will stay on the question (otherwise, the temptation to add new answers that duplicate existing answers is too great); but everyone can suggest an edit to improve the post. If you're not willing to do that, then there's very little hope you're willing to help keep the question up to date anyway. - George Stocker
(2) Netbeans does not support code completion, as of 8.0.2 - Musa
You can add canopy. It is quite nice. - Rakesh
Can you do a responsive version so I can read it on my blackberry please? - Exitos
(3) @Exitos You can always suggest an edit for a better format. Use the 'suggest edit' or 'edit' button to do so. Be the change you wish to see in the world. - George Stocker
(3) @GeorgeStocker Are you including plugins in your analysis? For instance, I think that Sublime Text should include SC - Source Control integration as there are several good git plugins available. - Christopher Pearson
what about Eclipse? BTW I found this useful link: wiki.python.org/moin/IntegratedDevelopmentEnvironments. see section "IDEs with introspection-based code completion and integrated debugger" - OhadR
PyCharm has their Community Edition, which is free. - skmathur
(1) Spreadsheet version: docs.google.com/spreadsheets/d/… - Vitim.us
(1) How does Canopy compare to these? I also have to ask, why isn't Canopy here? - Dirk Haupt
(2) As usual, VIM is the most full-featured editor available! - dotancohen
(1) This list does not include Visual Studios. (I don't know enough about the Python tools in Visual Studios to actually edit it in, however.) - Justin
(1) The current PyCharm does templates. - Tony Suffolk 66
I just reviewed the entries for Spyder (which comes free in Anaconda) and Emacs, and I can certify that they are up to date as of now. - Aaron Hall
(1) "This is an experiment. The C++ folks take care to keep their list pruned and updated. That's really the only way this can work." - meta.stackoverflow.com/a/276552/541136 So are some of these IDE's defunct and need deletion? - Aaron Hall
I use sublime IDE anaconda. It does most of what is required for python pep'ing. In current environment, PyCharm is slow. Sublime on the other hand is relatively fast. It has flexible customizing feature. damnwidget.github.io/anaconda - nish
(1) It would be also good to know which of these IDEs can open a Python interactive shell inside them. - A.S
(1) the open source link is currently dead - JenB
Atom should have 'Y' for auto-code completion... in a version I used back in Oct. (2015), it brings up a contextual menu for keywords in Python, function names, and user defined variables. - ackmondual
For those looking for a good data analysis IDE for Python, Rodeo have just updated their attempt and it essentially copies the look and feel of RStudio (r-bloggers.com/rstudio-clone-for-python-rodeo) - Natty_E
@OhadR Eclipse also has own Python support specialmeaning.blogspot.com/2016/04/… - Sergei
The 'Y' for code completion is a bit misleading IMO. The only IDE I've tried on that list that has real code completion is PyCharm. Most of them have word-processor style code completion where it just matches what you've previously written, rather than actually trying to work out the type of your variables. I mean, it's understandable since Python's dynamic typing makes it extremely difficult to do, but we shouldn't delude ourselves that all these IDEs actually have real code completion. - Timmmm
@Timmmm I like my auto-completion simple, flexible, and fast, and only Notepad++ supplies that. Most IDEs i've tried only have call tips. - Cees Timmerman
@CeesTimmerman Most IDEs can do fast and accurate code completion for statically typed languages (Java, C#, C++). It's much more difficult for dynamically typed languages like Python, but I'd still rather have it than not. - Timmmm
@Timmmm dir() and help() list all properties of mysteryvar. I prefer online docs to debuggers. - Cees Timmerman
@CeesTimmerman Yes you can use online documentation but it is much slower. I don't know why you'd prefer the slow method. Btw I just tried Komodo Edit again (last tried about 5 years ago). It now has pretty reasonable code completion and it's very fast - worth a look. - Timmmm
@Timmmm Google has examples and is faster than managing and triggering breakpoints. Komodo Edit still lacks the more common case of reusing variable names in the same file, and even then might ignore those in comments. - Cees Timmerman
@CeesTimmerman Wait, I was never talking about debugging... Anyway, we should stop this discussion. - Timmmm
You could make a Markdown table of that. - Bharadwaj Raju
What about refactoring (e.g. variable or function renaming across files) ? IMO, much more important than most of the other table entries. - rockdaboot
Spreadsheet and text version differ: you need to add Code Templates to PyCharm. - timo.rieber
1