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.
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:
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.)?
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.
:!<command> if you want to send the output of that command to your current window, use :r!<command>. Also note that vim auto completion is nowhere near something like eclipse. - Matt Briggs
I use Eclipse plus the PyDev plugin [1]. 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
Also, outside of Eclipse, I suggest you get IPython [8] for your command line debugging pleasure. I prefer it over the standard command line shell and IDLE (The GUI shell).
[1] http://pydev.org/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 [1] is a great starting point.
[1] http://www.emacswiki.org/cgi-bin/wikiPyCharm from Jetbrains [1] 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
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).
[1] http://www.jetbrains.com/pycharm/If you are on Windows, then PyScripter [1] 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].
[1] http://code.google.com/p/pyscripter/+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 [1] 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.
[1] http://en.wikipedia.org/wiki/IPythonI use a Mac and prefer Textmate [1] but there are other choices [2]. For the PC I have heard only good things about Notepad++ [3].
[1] http://macromates.comSee appropriate page in Python wiki [1] and choose the one that fits your taste (have you ever heard of Emacs vs. Vim flame wars? ;)).
Personally, I'm using Textmate [2] on Mac, Komodo Edit [3] on Windows and PIDA [4] on linux.
[1] http://wiki.python.org/moin/DevelopmentToolsThere is Komodo from ActiveState which is commercial, there is also Komodo Edit [1] which is free.
[1] http://www.activestate.com/komodo%5Fedit/You might want to add Sublime Text [1] 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 [2] 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:
Netbeans 6.9.1, though it doesn't seem to support Python 3.X syntax yet.
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 [1]. 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.
[1] http://www.wingware.com/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.
Up until a few months ago I was a long time user of SciTE [1] (SCIntilla based Text Editor) but recently I've switched to using Geany [2], 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.).

Some of the interesting features of Geany (some also apply to SciTE):
Geany (CP, F, AC*, MLS, SI, BM, LN, CF, CT)
[1] http://www.scintilla.org/SciTE.htmlPycharm: http://www.jetbrains.com/pycharm/
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:
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
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.
Emacs (python-mode).
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/
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)
Which editor I use depends on the OS/environment I'm working in.
[1] http://www.gnome.org/projects/gedit/A general purpose editor which is not mentioned too often is jEdit [1]. 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.
[1] http://www.jedit.orgI 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.
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
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.
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.
The editor that comes with the python distribution (Idle) is very good for first time Python programmers.
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
This similar question [1] also has some suggestions.
[1] http://stackoverflow.com/questions/60784/poll-which-python-ideeditor-is-the-bestYou can add Editra [1] 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 [2] plugin, you get (PD, EM) added.
[1] http://editra.org/I usually just use Notepad++:
I normally write fairly simple scripts, and don't need a full-scale IDE. However, I am looking at IronPython.
I really like using IntelliJ IDEA [1] with Python plugin [2]. Sometimes I need to cheat and look at the code of the library I'm using.
[1] http://www.jetbrains.com/idea/I use vim [1] to write very small Python scripts and ipython [2] for interactive experiments and investigations of unknown APIs.
I also use pudb [3] for debugging Python code.
However, my favourite Python IDE is leo [4]. Being written in Python itself, leo has a huge potential. It is fully scriptable and has a lot of tasty features. leo is different from traditional text editors and IDEs, it might look unusual at a first glance. But after using it for a while (not only as programming IDE) most people realize that leo is unique, because it raises the data management process to a new level.
[1] http://www.vim.org/Wikipedia comparision of Python IDEs http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python
I think PyCharm from JetBrains (commercial) is a good choice
I've been using Vim without hassle for all of my Python development. I find it handles all programming languages very well, but when it comes down to it, it's a personal preference and you have to experiment with all the editors around until one suits you best.
I use eric ide [1] for most of my python work. It has all major features needed in an IDE, and quite a few minor ones as well, it is written entirely in python and uses QT so it is pretty cross platform. It also integrates the interactive python shell for quick experimetation.
[1] http://www.die-offenbachs.de/eric/index.htmlOn Windows there is Zeus - http://www.zeusedit.com
It does Python syntax highlighting, code folding, code indenting, code templates etc.
You can even write Zeus macros using the Python language.
You should add Boa Constructor. I used it only once but it seems mature. http://sourceforge.net/projects/boa-constructor/ It contains a usable RAD - GUI and a code designer (as Dabo).
I'd suggest few more features to your list (in which I'm interested in particular):
GUI Designer (e.g. Qt, Eric, ..)
integrated database support
RAD (rapid application development, which IMHO means that the GUI Designer integrates code generation in a way that the user doesn't need to know about, for basic needs (as Visual Basic, and as where Dabo is aiming).
IMO Rapid dekstop development with seamless DB integration makes development rock for most common business applications, both in development and more importantly - for maintenance.
I would say that the best IDE for Python would be Wing IDE. Though it's a commercial application, it's quite powerful and it does justice to Python language.
Second IDE I would opt for is PyScripter, it is very simple but powerful and it gets the job done with no hassles. Moreover, it's free.
Third IDE I would opt for is Eric IDE, especially for developing PyQt Applications.
Also, I am on the lookout for Netbean's Python support, so far, they have only released a Early Release version. Lets see how the final version comes out.
IronPython Studio - Microsoft's 100% compatible Python implemention integrated with Visual Studio 2008 and it's free.
There is a nice article on turning Vim into a Python IDE: http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/
I've followed it (well, most parts at least) and it pays off. Vim doesn't bother you with lots of windows and unnecessary nested menus that are difficult to memorize and work with (yes, Eclipse, I'm talking to you). Vim gets the job (being an IDE, that is) done simply and effectively.
I use LEO [1] which really is more than just a programmer's editor and deserves it own category.
[1] http://sourceforge.net/projects/leo/DreamPie [1], however much of it is derived from IDLE.
[1] http://dreampie.sourceforge.net/index.htmlFor Windows, PyScripter is the by far the best that I've tried. Very simple and clean.
Not only for Python, but also for other languages, I use Scribes [1].
No visual clutter. Ultra-minimal.
Its 'philosophy' is to be the most simple and sleek editor. That means just the few buttons necessary, the editing area and nothing else. No screen space is wasted by some IDE-like way of managing some barely used functionnalities. It even recently abandonned the menu bar by default (hidden most of the time but still accessible from a 'trigger area').
It has no tabs (that frightens quite a few people), but it's only because it shouldn't be the job of the editor to manage the different documents opened: it's the job of the window manager (try pekwm for example). If you're not convinced by this approach, I still recommend to give it a try.
To achieve the simplest interface, it has some useful hotkeys (list them with ctrl-h).
A way to open files quickly (a little bit like launchy or gnome-do), details can be found on the development blog.
Snippets (the fastest way to code).
To put it short, it tries to apply the 'Less is more' design. Turns out it is a lot more practical than most editors/IDE out there, and it still stays simple.
[1] http://scribes.sourceforge.net/index.html(sorry if this is a repeat) Python wiki page has a list of editors:
http://wiki.python.org/moin/PythonEditors
It would help if you provided what platform you are working on. For Linux (and probably other platforms) there is an Eclipse plugin for Python. I believe there is also a plugin for KDevelop.
I've heard a lot of good things about Code::Blocks, and it is multiple platform (win, mac, lin). Maybe give this a try: http://www.codeblocks.org/
Usually any decent text editor will get the job done when editing Python files. I used Geany [1] quite regularly since it has highlighting, indenting, and can run the script directly from the editor. It also includes a class browser feature which can extract methods and variables from a source file into a tree structure.
It is also extremely lightweight so it's not a big deal to start up for a quick edit.
[1] http://www.geany.org/I code Python mainly under Linux, and use Bluefish, a text editor intended mainly for web design but which has syntax highlighting for Python. I think the power of a Python interactive session means there's no need for an IDE.
Dabo [1] has its own IDE. It was decent if you wanted to use the dabo library to help with wxWidgets in Python. I stopped using it since I've moved to doing web development.
In Windows, I use Notepad++. In Linux, I am still trying to figure out what I like the most. I'm trying out Eric4 right now.
[1] http://dabodev.com/Some updates for Komodo: +EM (if you mean underline squigglies for syntax errors) +SI +BM (there is subtle highlighting of the matching bracket when cursor is on a bracket, plus keybindings to jump between them) +LN +CF +CT (Komodo calls them "snippets") +UT (in the commercial version, Komodo IDE, only)
I've used many, if not most, of the python IDEs out there. I have a bias toward free software, of course.
Of the commercial ones, I've only really tried Komodo, and it is excellent. Debugging support is comprehensive, with the ability to run interactive commands in the middle of a debugging session. ActiveState has been doing this a long time and makes it all work. That said, the free solutions are comparable enough that I haven't found it necessary to pony up the $$ for Komodo, but I still envy it at times.
Wing IDE is also supposed to be excellent for a commercial product, but I haven't used it. It has a good reputation if you are designing GUI-based apps. It may have an edge on Komodo in that respect.
Of the free solutions, I two environments, one that is full-featured and one that is bang-for-the-buck quick and dirty.
For full-featured development, I use Eclipse with Aptana PyDev as well as PyLint. PyLint integration is one of the big features, along with good (but not great) debugging. Subversion integration is a big plus and one of the features missing in a lot of other IDEs. The price you pay for these features is a lot of banging your head on trying to configure it all, since Eclipse is the Ikea of development environments. You have to obtain and assemble the pieces for each feature. Once it's together though, it's a great environment. The only other thing I haven't really investigated is unit testing support.
For bang-for-the-buck quick and dirty development I use PyScripter and it's the MVP of the ones I've used. It's small, comes in a portable .zip flavor, and has almost all of the features of the big boy Eclipse. I can't say enough good things about this environment, but there are just a couple nitpicks. The UI is a bit quirky in places, but it has all of the tools I need except subversion integration (it has pylint integration but I haven't tried that). The debugging is good, although it maintains a single interpreter session between runs so you have to reinitialize the interpreter between runs if you want to make sure you have a clean slate. Finally, you need to install an older version of the rpyc library to run an out-of-process interpreter session, which is desirable for stability and compatibility with all libraries. Unit testing support is available although I haven't checked that out either.
Here's a list of the other IDEs I've tried at one point or another: * Komodo Edit - a nice editor but not an IDE really * DrPython - good simple IDE * Eric3 - a bit confusing, didn't go too deep * SPE - one of the most featureful of the free IDEs, but didn't like the linux-focus of late (eg, no windows installer) * Notepad++ - plug for a favorite editor, not an IDE but gets the job done * PythonWin - simple, but PyScripter is as simple and far better * IDLE - in a pinch
Overall, if money were no object, I'd go with Komodo for it's great debugging, but I'd miss subversion integration (unless it has it now, it's been a long time).
Of the free solutions, I'd handily recommend PyScripter to new and experienced alike. If you do it for a living, though, I'd take the time to download the "core only" version of Eclipse and install Subversive, PyDev, PyLint and Mylyn integration with a good issue tracking system like Redmine.
My $.02
There's a new contender for Windows that I code named Pfaide [1] in alpha state.
* C - Commercial
* AC - Automatic Code-completion (actively in the works, planned to be the killer feature in the end)
* MLS - Multi-Language Support (right now CSS, JavaScript, HTML with Django blocks.)
* PD - Integrated Python Debugging (right now only CPyhton 2.6, other platforms like IronPython also in the works)
* SC - Source Control integration (integrates with Tortoise* via shell context menus)
* SI - Smart Indent
* BM - Bracket Matching
* LN - Line Numbering
* CF - Code Folding
* CT - Code Templates
[1] http://pfaide.com/Actually where is monodevelop, which has nice python plug-in too.
EditRocket [1] - cross platform (Windows, Mac, Linux), not expensive, code completion, bracket matching, line numbering, code templates, snippets, ftp/sftp, python script integration, local web server integration, etc.
[1] http://www.editrocket.com/SciTE is also: SI and AC (via user files). In my experience, is useful to separate text editor and dev. tools, because it is good to use the same text editor for coding in many languages and performing other editing stuff (docs, etc.)
Notepad2. One of the best lightweight editors for Windows, it's free. Replace notepad in the system folder with it and forget about notepad!
There is also NINJA [1] According to the site is supports: (CP, F, AC, LN, BM, CF)
[1] http://ninja-ide.appspot.com/Visual Studio with Python Tools for Visual Studio [1]. It supports CPython and IronPython and fully integrates into the IDE (debugging, REPL etc).
[1] http://pytools.codeplex.com/I prefer to use PyDev for Eclipse [1], but E-Texteditor [2] has some good bundle support (same as Textmate).
[1] http://pydev.sourceforge.net/For Windows I tend to use ConTEXT [1]. It's not open source, but still excellent none-the-less.
[1] http://context.cxIt is very strange that nobody mentioned ipython (http://ipython.scipy.org/moin/). Ipython is a "python shell on steroids". It is a very useful (actually, must have) companion to any IDE. The new version of ipython is supposed to solve several problems that prevent its integration to IDE's. I really hope PyDev will have ipython integrated in it.
Is there any reason why PythonWin hasn't been mentioned yet? I find it easy to use, has nice autocompletion, and it's available under Windows if PyWin32 is installed.
Usually people that come from other languages especially the .NET ones will ask about IDEs and won't accept text editors as an answer.
Because of the nature of the language a tool that tries to approach increasing productivity like eclipse and netbeans do for java or VS does for C# will fail miserably at that.
The features I've found most useful in the tools I've used for python are:
I've mostly stuck with Textmate on OS X and e editor on Windows. In combination with IPython I don't have much need to use anything else.
Last time I tried Netbeans for python, it was brand new (well, beta I suppose) and did everything Eclipse + PyDev did. Overall, I thought it was nicer, except for a small issue with rendering lines so underscores were cut off. I believe this is to be fixed in the next version, which is due out VERY shortly. You can download builds of the next version now, but they don't yet have the plugins for python available. Many plugins aren't available for it yet though, so I don't foresee a problem there.
I prefer PyDev (it's now free with all extensions, since it was acquired by Aptana). It has all features for modern Python programming and all the additional features coming with the Eclipse platform. It works on Linux and Windows. So you can easily have the same IDE on your preferred OS. So my Nr. 1.
A strong competitor for Pydev is Netbeans with the Python plug-in. But currently it's more for early adopters. I filled some bug reports about problems with the code assist and the debugging. But I see much potential that Netbeans can be in the future the Python IDE.
There are some text editors like Gedit, Vim, Emacs. For quick editing I like Gedit but it is not an IDE and I would never use it for large work or bigger projects.
I also tried some commercial IDEs like Komodo. But IMHO it's not the worst waste of money if I compare them with Pydev or Netbeans.
No one has mentioned XCode? It's great.
I would like to update the entry about SciTE: It is more like: CP, F, MLS, EM, BM, LN, CF, CT. Not to mention that it is lightning fast and quite scriptable compared to most alternatives.
I usually use good ol' gvim.
Eclipse with PyDev
I am using 3 different tools:
KDevelop (CP, F, MLS, SC, SI, BM, LN, CF)
I use Dr.Python [1] (ver 3.11.0) and SciTE [2] , Dr.Python is pretty good, though it hasn't really been very popular !
[1] http://drpython.sourceforge.net/The wing IDE but jetbrains has something new: http://www.jetbrains.com/pycharm/index.html
Something I hadn't seen noted is that the Wing IDE now comes in a free flavor, Wing 101. It has reduced capabilities relative to the non-free versions, but I found it pleasant to work with, and it does have a break-point debugger and some other nice features. It was apparently designed in cooperation with the U of Toronto for CS students.
I am using PyDev [1] and Komodo Edit (Open Version).
Komodo seems updated on a more regular basis, so I will suggest it for a Python/Perl/Bash coder. Komodo is lighter than Eclipse on Mac OS X and Linux too.
[1] http://en.wikipedia.org/wiki/PyDevI like using ScriptDev [1]. It's a scripting language IDE, it can support some very popular scripting languages, for example, Python, Ruby, Lua, Tcl, Perl and so on.
Major features as follows:
I guess that Iep [1] can be a good editor if you are working with interactive plotting using Matplotlib.
I don't use it yet, because it has some editor problems on Mac. But they are working on a fix for that. I'll give it a try when they fix it :)
[1] http://code.google.com/p/iep/I haven't seen anyone mention Coda [1]. It's Mac only, and I know it's not perfect, but I keep coming back to it. Looking forward to their v.2.
[1] http://www.panic.com/coda/NetBeans is great, especially if you also happen to do for instance C / C++, Java or PHP.
Gedit (CP, F, AC, SI, BM, LN)
Available for BSD, Linux, Mac OS X, Windows, amongst others.
Code completition is only for functions in open files and variables.
There are also plugins for a file-tree on the side panel, and a terminal on the lower panel.
Most of the other functionalities are plugins as well.
https://secure.wikimedia.org/wikipedia/en/wiki/Gedit
After using IDLE for a few days, I switched to and like pydev perspective in Eclipse. I like it better than Aptana's integrated solution. I haven't tried to integrate svn into Eclipse.
I use gvim when I'm programming myself and use gedit when I'm teaching it to my students (I tried Eric python, but it crashed the first time and I didn't try it anymore after the crash).
For beginers the best option would be to start with net beans (6.5 or 6.7 Python EA Version).
I'd vote for WingIDE [1] and Eclipse w/PyDev as an up and comer. Wing is a commercial product but like alot of IDE's they have a "1-month Free!" going on and decently priced otherwise. Nice rational project layouts, strong debugger, pretty good symbol scraping(especially good for installed libs).
[1] http://wingware.comPyDev for eclipse works because you can very quickly switch between languages. Python is not my first langauge (gasp) but for some tasks, particularly for natural language processing, it is very helpful. Powerful enough to do what I need to do yet flexible enough so that I can minimize the number of IDEs I am using.
The only gripe I have is that if load down eclipse with too many "extras", you pay the price when you try to start the application.
i think IEP is the best for the beginner, it's simple, and fast, and supports Stdout (raw_input) and unicode since it's made using python 3, it's a python 3 software, but also works with the 2.7, there is a modified source, or you can install directly the compiled version, i'm a windows user and it works like a charm, it seems that they're preparing a new release! and it will be a real new one :D
For Mac-based developers, I still like - and use Coda [1]. It can syntax check Python scripts, as well as HTML, CSS, PHP... It's a bit long in the tooth at this point, but v.2 is on the way..
[1] http://www.panic.com/coda/Netbeans is at the top of my list, i just find it does everything I need it to do without trying to be to smart.
For new Python learners the python.org download comes equipped with IDLE which is excellent to start with. It may be ugly but it is very good (auto-complete is good for new learners to).
My favorite Python IDE is Komodo [1]. Never had any problems with it and it has everything a developer needs. And if something is not built in you can easily extend the IDE.
[1] http://www.openkomodo.com/I suggest using Visual studio and IronPython.
NetBeans provides also an Integrated (Graphical) Python Debugger.
(Sorry, not enough rep to comment)
For the record, Pida is a wrapper around Emacs, and thus has all the features that Emacs does, with the added bonus of proper project handling, a source-code outliner, and assorted plugins.
Pydev with Eclipse is the clear winner.
I personally have fell in love with vim. You can make it do pretty much whatever you want via your .vimrc file (i.e. indentation, code completion, debugging, compiling, folding, tag/tree navigation etc.etc). It works on *nix and Windows systems. And of course it's FREE!!!
Vim has CP, F, AC, MLS, SI, BM, LN, CF.
Other than that, it works with or without a GUI, and starts in a splitsecond:
$ time vim -c :q
real 0m0.139s user 0m0.092s sys 0m0.028s
Autocompletion is called Omnicompletion in Vim, but other than that, it's the same.
PIDA integrates Vim and therefore has nearly everything Vim has, but some more features. On the downside, it doesnt start so fast and it needs a GUI.
+1 for WingIDE. Code Intelligence, Debugger, Support Python3.x (Only WindIDE 3.2 Beta, beta2 released recently).
From my personal experience if you have to chose between aptna (Eclipse) and Komodo [1] then prefer komodo. It's a lightweight IDE.
[1] http://en.wikipedia.org/wiki/ActiveState%5FKomodoNetBeans 6.7. I used to use Emacs, but the combination of decent (and improving) python support combined with excellent html/css/javascript support won me over.
Editra
A relatively new editor written in python, with a pythonic API and features like vim emulation, ipython integration etc.
I've given Eclipse with PyDev another chance as a result of this question. After using Komodo as my IDE of choice in the past year working with Django code, I was left impressed with Eclipse' (Galileo) performance improvements on the mac.
I've made the switch and can now easily recommend Eclipse over other options.
For changes done through the console though, Vim is still my preferred choice.
IntelliJ IDEA [1] with Python plugin [2] in my opinion has better completion and refactoring than PyDev. I use it for django web development so some other features as smart html editor and robust JS refactoring also help very much.
[1] http://www.jetbrains.com/idea/I sometimes use Davys IronPython Editor. Written in IronPython, simple interface. Low barriers to to bash out a few scripts when in a hurry. No real IDE features per se. Find it here: http://code.google.com/p/davysironpythoneditor/
I am using the PyDev plugin for Eclipse and it's working great.
When I started programming Python professionally I tried out most of the recommended IDE's. I wasn't very happy with either so I continued looking. In the meantime I used emacs to actually get some work done and now I'm not looking for an IDE any more.
Emacs with some extra tools such as python-mode, nosetests etc is great. It maximizes coding time and minimizes IDE issues. The only thing I miss is project wide find and query-replace.
I prefer Boa Constructor; which you do not have listed yet. Is it because it is still Beta? Boa was made directly for Python & wxPython. wxPython GUI visual development support & auto complete. The debugging tools are a little buggy but it seems to have all the features once you figure out how to use it.
CP, F, AC, PD, EM, SI, BM, LN, UML, CF, CT. It also has some other cool features like TODO list & show WhiteSpace.
NetBeans has also:
UT LN Some CT
:)
Pydev with Eclipse (with the VI plugin!) best of both worlds
I use Editpad Pro [1] by JGSoft. What I like is that you can set up keyboard short-cuts to run commands.
I've got shortcuts to launch the selected file (with 2.5 and one with 2.6), run the selected file through PyLint, and launch Winpdb on the selected file.
It's really just an awesome text editor, but it works quite well for python development.
[1] http://www.editpadpro.com/I've had good results with both pydev/eclipse and wing ide. wing ide is commercial, pydev/eclipes is free/open source.
I currently use GVim (or vim, depending on my mood) with many customizations. These include having line numbering (which can be disabled/re-enabled by pressing F2) and an option to run the python code from inside the program (shift-e). If you would like to dabble with vim/gvim, I'll be happy to send you my customizations.
If you do not feel like messing with vim/gvim (yes, the key combinations are often rather less than intuitive), I highly recommend the Eric python IDE. You can get it from http://eric-ide.python-projects.org/ and it is already pre-configured specifically for python.
Has anyone had experience with spyder [1]? I cant see it mentioned but it does look promising..
[1] http://packages.python.org/spyder/The best one is Wingware ( when you debug you have the whole stack in the console and can play arroud) On a mac it only works using X11 therefore i use Pydev and the VIM plugin for eclipse
Idle is good enough, fits my need. If you prefer an IDE ,I recommend wingide [1]
[1] http://www.wingware.com/PyDev with Eclipse
I thought python 3.1.2 doesn't work in Netbeans. today i have it a try on netbeans 6.9.1. its working! now i need to compare it with PyDev.
Maybe this also can be added to the list: http://www.easyeclipse.org/site/distributions/python.html
For most development I would use Eclipse with PyDev.
Sometimes for quick development on Windows I would use PythonWin.
SH(SciTE)? Syntax highlighting? So it must be added to most of other IDEs. - Nakilon