What IDE to use for Python?

1,668,884

Results

Spreadsheet version

spreadsheet screenshot

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

                         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 -.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  .- Refactoring
   Cross Platform -.  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |     
                  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
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 |  |  |  |  |  |  |  |  |
IntelliJ          |Y |CF|Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |
JEdit             |Y |F |  |Y |  |  |  |  |Y |Y |  |Y |  |  |  |  |  |
KDevelop          |Y |F |Y*|Y |  |  |Y |Y |Y |Y |  |Y |  |  |  |  |  |*no type inference
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 |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 |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 |? |Y |? |? |Y |? |Y |
Visual Studio Code|Y |F |Y |Y |Y |Y |Y |Y |Y |Y |? |Y |? |? |? |? |Y |uses plugins
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 -'  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |     
     Commercial/Free -'  |  |  |  |  |  |  |  |  |  |  |  |  |  |  '- Refactoring
   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

Share:
1,668,884
husayt
Author by

husayt

Updated on July 08, 2022

Comments

  • husayt
    husayt almost 2 years

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

  • Axel
    Axel over 9 years
    On my smartphone browser, this table is completely unreadable.
  • George Stocker
    George Stocker over 9 years
    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.
  • Rakesh
    Rakesh about 9 years
    You can add canopy. It is quite nice.
  • Exitos
    Exitos about 9 years
    Can you do a responsive version so I can read it on my blackberry please?
  • George Stocker
    George Stocker about 9 years
    @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.
  • Russia Must Remove Putin
    Russia Must Remove Putin over 8 years
    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.
  • multigoodverse
    multigoodverse over 8 years
    It would be also good to know which of these IDEs can open a Python interactive shell inside them.
  • nathaneastwood
    nathaneastwood over 8 years
    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)
  • Sergei Krivonos
    Sergei Krivonos about 8 years
    @OhadR Eclipse also has own Python support specialmeaning.blogspot.com/2016/04/…
  • Timmmm
    Timmmm about 8 years
    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.
  • Cees Timmerman
    Cees Timmerman about 8 years
    @Timmmm I like my auto-completion simple, flexible, and fast, and only Notepad++ supplies that. Most IDEs i've tried only have call tips.
  • Timmmm
    Timmmm about 8 years
    @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.
  • Cees Timmerman
    Cees Timmerman about 8 years
    @Timmmm dir() and help() list all properties of mysteryvar. I prefer online docs to debuggers.
  • Timmmm
    Timmmm about 8 years
    @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.
  • Cees Timmerman
    Cees Timmerman about 8 years
    @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.
  • Admin
    Admin about 8 years
    You could make a Markdown table of that.
  • rockdaboot
    rockdaboot almost 8 years
    What about refactoring (e.g. variable or function renaming across files) ? IMO, much more important than most of the other table entries.
  • timo.rieber
    timo.rieber almost 8 years
    Spreadsheet and text version differ: you need to add Code Templates to PyCharm.
  • Loreno Heer
    Loreno Heer over 7 years
    emacs has some DB support in form of installable packages. never tried it though.
  • FLHerne
    FLHerne over 7 years
    KDevelop (with kdev-python) has integrated PDB debugging, code templates and real (type-aware) autocompletion.
  • user541686
    user541686 about 7 years
    The most important feature I wanted (type inference) isn't on this list...
  • Right leg
    Right leg over 6 years
    What's wrong with the link? When I click the image, the table has a dozen rows, while the preview seems to have thirty...
  • Neinstein
    Neinstein over 6 years
    The spreadsheets sems to have lost a lot of entries. As @ Rightleg pointed out, the picture shows a lot more entries than currently present, including Geany I use right now. What is the reason of removals?
  • Tom
    Tom about 6 years
    Are any of these actually any good? I'm still looking for a Python IDE I'm happy with. Atom doesn't do real context-sensitive autocorrection, eats massive amounts of RAM and the its Emacs keybindings are awful. PyCharm is pretty good but uses a lot of memory and the full feature set is expensive (£180 for a one-year license!). Eclipse does pretty much everything but again has a huge memory footprint. Emacs appears to do most things but the configuration is so byzantine that I've given up (and it doesn't have a decent project tree display). NetBeans 8.2 doesn't seem to support Python.
  • Tom
    Tom about 6 years
    Actually, I've given emacs / elpy another go. It's not perfect (or maybe I haven't got it configured perfectly yet) but it already outdoes any of the free options.
  • Cees Timmerman
    Cees Timmerman over 5 years
    @Mehrdad Type inference is used for calltips and autocompletion.
  • user541686
    user541686 over 5 years
    @CeesTimmerman: It's not clear to me what qualifies as auto-completion. My text editor just displays whatever words it finds in the current file as auto-completion entries; it's pretty dumb and doesn't do any type-inference. Also, when I hover on a variable in Visual Studio, it shows the actual types that were inferred. That's more information than simply listing the guessed methods.
  • Cees Timmerman
    Cees Timmerman over 5 years
    @Mehrdad Text editors don't understand variable types. Try Visual Studio Code or any other competent Python IDE like PyScripter.
  • Cees Timmerman
    Cees Timmerman over 5 years
    @FLHerne Not on Windows 10 as far as i see. Feel free to update the table yourselves.
  • ntg
    ntg about 5 years
    @CeesTimmerman: +1. Its clear that there are various levels of auto-completion varying from repeating existing words, to full off-line syntactic analysis, and full online analysis based on what the current contents/type of a class/variable is. Also, some tools need you to enter the beginning of a function/property/class, while others can be invoked and then typing any part is ok I find the later incredibly useful (E.g. : say class Foo has method foobar(), in jupyter notebook you currently need to do Foo.<Tab>fo while in other tools you can do Foo.<ctrl-Tab>bar and it will find Foo.foobar())
  • Crashmeister
    Crashmeister over 4 years
    @Tom - the plugin for Netbeans is still available. See plugins.netbeans.org/plugin/56795/python4netbeans802. This works in Netbeans 11 but has the same flaws. Has not been updated since around 2014. I hoped Apache would put some effort into Python when they took over Netbeans but nothing so far.
  • bb1950328
    bb1950328 about 4 years
    @user541686 PyCharm is capable of type inference
  • CoolCoder
    CoolCoder almost 3 years
    @GeorgeStocker, Note that IDLE supports line numbering as of IDLE 3.9.0