views:

103951

answers:

102
+25  A: 

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

Teifion
Here's one thing about Notepad++: it crashes, sometimes :)
Robert Grant
+23  A: 

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

kinjal
+8  A: 

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.

Ben
+8  A: 

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)

David Heggie
+151  A: 

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.

rawicki
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
vim rocks[ESC]100i![ESC]111
pi
And you can extend Vim with plugins written in Python.
rq
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
When I had to learn vi, back in the past at a students job, I truly hated it and I don't wanted to learn this weird stuff (I was used to only "modern" stuff with real visual editors)! But today I am glad, I was forced to, since after you learned vi (or today vim) it makes you much more productive and is available on nearly all machines. And today vim also gives you much of the power of other modern development environments.
Juergen
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
What I love about vim is that it only uses 2MB of RAM on my Ubuntu system.
Honza Pokorny
Two of the more important features I look for in an IDE is auto-completion and a quick-run keyboard shortcut (Like F5 in Matlab or Shift+F9 in SPE). I looked at vim feature list and I know it supports auto-completion. Does it support the quick-run keyboard shortcut? I'm not sure what the industry jargon is for that kind of feature.
Kit
@kit: you can farm out any command to the shell with `:!<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
imo there are very few things that even come close when it comes to effective code editing then vim. definately nothing that matches it.
Matt Briggs
vim+eclipse=eclim is better then just VIM. people need code correction like incorrect vars, and all that been said before =)
holms
+6  A: 

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

Iulian Şerbănoiu
+150  A: 

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

Tom Leys
I have been using pydev, but didn't know about pyLint. That is a great Tip. While we are on it, what would you advise for editing html templates in Eclipse.Thanks.
husayt
+1 - PyDev is excellent
Yuval A
+1 for PyDev, and I would actually recommend that you shell out for the PyDev Extensions, it makes the environment much smarter http://www.fabioz.com/pydev/
Henrik Gustafsson
+1 - have used by PyDev and apart from the nag screens it is pretty good.
sean riley
+1 for PyDev and eclipse. Takes a bit to get it all set up, but once installed you can develop at an almost unprecedented speed!
Jon Cage
+1 for eclipse! pydev is great, but that's really because eclipse is so awesome to have such a great dev community to make all these wonderful addons.
Victor
As of Sep 3 2009, PyDev Extensions is open source, and included free with PyDev
itsadok
@itsadok thanks for the heads up! :)
Tom Leys
+1 for goto and multi clipboard. Those are the things i've been missing the most from Eclipse (compared to Visual Studio with VAssist)
Marcus Lindblom
+1 I really like completion and debugging.
Laurent Etiemble
+1 The debugger included on PyDev is quite good, and pyLint is great to detect some errors, although I tweak the regular expressions for names declaration...
Khelben
+1 for Eclipse+Pydev. I hate Wingware(which claims to be second best in Python IDEs) and I even prepared a chart for the requested Wingware plugins(http://docs.google.com/View?id=ajg4x6nbspxv_183dtrvqngh)
Maddy
I would like to express my gratitude to the Stackoverflow community for introducing me to the beauty of Eclipse and PyDev.
Honza Pokorny
Since it went open-source, PyDev is a no-brainer choice.
Uri
eclipse is great, but there is no built-in word-wrap functionality
Baha
+1  A: 

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/

Code::Blocks is for C++ development mainly.
Iulian Şerbănoiu
Yes, and while I love code::blocks, it's not as cross platform as it would like to be. My experience with it on OS X is less than perfect. KDevelop is a reasonably good editor though.
Jason Baker
+35  A: 

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.

zgoda
Aaaand the Python wiki links back here... :-)
nalply
+5  A: 

This similar question also has some suggestions.

Dave Webb
+1  A: 

Usually any decent text editor will get the job done when editing Python files. I used Geany 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.

Andrew Burgess
+7  A: 

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/

MikeCroucher
+1 for gedit. It's a simple, no-nonsense text editor and really that's all I need for Python.
bobince
+14  A: 

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.

badp
+70  A: 

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.

Chopmo
I'd say that it's steep, but not very high. Once your brain starts moving in the right direction, it's not terribly difficult to figure out.
Jason Baker
+1 emacs all the way.The only one with *all* features. Integrated debugging with watches and breakpoints, syntax highlight, auto ident, you can point the mouse to a var and see its value in a tooltip, refactor tools, *working* completion, project management, games, kitchen sink...
nosklo
The "steep learning curve" warning seems to put off many potential users. I think its a gentle curve in the sense that you can open emacs and start typing some text and then save it fairly easily (unlike vi). What's fantastic is that you will never stop learning once you start.
Raja
+1  A: 

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.

Tommy Herbert
"the power of a Python interactive session means there's no need for an IDE"Agreed. Which is why Komodo is basically an editor and a python command line, although it also has a debugger.
Matthew Schinckel
+1  A: 

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.

Drag0n
+9  A: 

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.

Matthias Kestenholz
A: 

I prefer to use PyDev for Eclipse, but E-Texteditor has some good bundle support (same as Textmate).

Jon Cage
+1  A: 

Dabo 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.

Echo
+6  A: 

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

Manzabar
+1 for UltraEdit as a general purpose text editor
mgroves
+1 for Kate - since moving to Kubuntu it has blown me away!
JGB146
+1  A: 

I use eric ide 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.

jilles de wit
+17  A: 

Ive been a professional working with Python for 8 years and for large projects nothing have been more practical to work with as 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.

Gregory
Too bad I can upvote this only once.
Nikhil
A: 

For Windows I tend to use ConTEXT. It's not open source, but still excellent none-the-less.

nonades
+12  A: 

I like SciTE very much.

Ber
A: 

It 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.

bgbg
+9  A: 

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.

crystalattice
+10  A: 

Emacs (python-mode).

pelle
+16  A: 

Netbeans, if Jython is ok for you.

Tommy
You can set up a python interpreter on your system , you don't have to use jython .
Geo
Support for python in netbeans seems quite good full features can be found at http://wiki.netbeans.org/Python
Mark Davidson
I've just started using this and it's pretty cool. Sticking with Jython for now, but might switch to IronPython or CPython.
Nosredna
+32  A: 

+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.

Lakshman Prasad
+1  A: 

On 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.

jussij
A: 

NetBeans is great, especially if you also happen to do for instance C / C++, Java or PHP.

Joonas Pulakka
A: 

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

SD
A: 

My favorite Python IDE is Komodo. 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.

okoman
+1  A: 

Anyone use the Cream front end for Vim?

http://en.wikipedia.org/wiki/Cream_(software)

Krakkos
+5  A: 

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

alexpopescu
it was very helpful. I update the list. Thanks
husayt
A: 

I suggest using Visual studio and IronPython.

Ali
ironpython is cool, but this thread is about pure python editors. It will be too confusing if we start mixing all python forks together. BTW do you know of any VS addon which would allow pure python development???
husayt
Visual Studio (++2008) *doesn't* provide full IronPython support.
Alex
+1  A: 

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.

it is added now. thanks for letting me know.
husayt
+1 for PythonWin. Has all the features of IDLE (F, AC, PD, SI, BM, CF) but slicker and smoother. A solid Windows editor even if you don't otherwise use the PyWin32 API.
Don O'Donnell
A: 

NetBeans provides also an Integrated (Graphical) Python Debugger.

(Sorry, not enough rep to comment)

amartin
Thanks. updated the list
husayt
+38  A: 

If you are on Windows, then PyScripter is the best FREE choice out there. It's a complete IDE with integrated debugger, single executable, no install hassels. 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 its 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 is.

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

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
Wow, that's awesome (after view->themes->default, anyway ;)
Blorgbeard
For lightweight scripting on windows, PyScripter is just unmatched.
Victor Yan
Have to agree, Pyscripter is easily the best I've used
What
Very nice, thanks! Makes debugging much easier for this Python newb!
Adam Neal
Nice find! Thank you.
James Roth
I've been using this, as it comes with Portable Python. I experience an awful amount of lag. Often as bad as 15 seconds until it responds. I have no clue what the causes are, but I do leave it open for days (I just put my computer into hybernation), and it's running off of a flash drive. Ram is not the problem.
Wallacoloo
+1  A: 

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:

  • Good support for code snippets - Textmate/e-editor, Gedit, Emacs
  • Good support for browsing directory structures and moving around files - Textmate/e-editor, Eclipse (with pydev), Gedit.
  • Autocomplete for used names - Textmate/e-editor, Emacs, Gedit.
  • Good integration with VCS - Eclipse, Emacs, Textmate.

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.

Vasil
+5  A: 

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.

Eigir
A: 

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.

+3  A: 

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.

Berry Tsakala
Thanks. Added your suggestions in
husayt
A: 

Pydev with Eclipse is the clear winner.

gmuller
+9  A: 

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)

Bruce van der Kooij
i also use geany, and i love that isnt bloated, and features everything you need.It also has a button to start your python script directly ...and it even shows a console for GUI-Applications what is absolutely necessary when debugging GUI-Applications
smerlin
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.
Forest
A: 

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!!!

A: 

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.

thanks. i jsut updated the list
husayt
+2  A: 

I usually just use Notepad++:

  • Free
  • (User-Extendable) Multiple Language Support
  • Line Numbering
  • Code Folding
  • Windows Only (Unfortunately)
  • Many other extensions and features.

I normally write fairly simple scripts, and don't need a full-scale IDE. However, I am looking at IronPython.

mkClark
+2  A: 

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.

Ibn Saeed
A: 

+1 for WingIDE. Code Intelligence, Debugger, Support Python3.x (Only WindIDE 3.2 Beta, beta2 released recently).

sunqiang
A: 

From my personal experience if you have to chose between aptna (Eclipse) and Komodo then prefer komodo. It's a lightweight IDE.

Abhimanyu
+1  A: 

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.

Lee B
A: 

NetBeans 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.

+2  A: 

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)

Trent Mick
A: 

Editra

A relatively new editor written in python, with a pythonic API and features like vim emulation, ipython integration etc.

Serra South
A: 

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.

Aurelio Tinio
+4  A: 

I really like using IntelliJ IDEA with Python plugin. Sometimes I need to cheat and look at the code of the library I'm using.

jpartogi
IDEA's Python plugin is better than PyDev in most ways. Only missing debugging, but when that comes, it will be the best by far.
truppo
A: 

IntelliJ IDEA with Python plugin 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.

Alfa07
A: 

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/

Michael Baker
A: 

I am using the PyDev plugin for Eclipse and it's working great.

A: 

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.

ath
A: 

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.

it's not listed but there's already such an answer.
SilentGhost
to SilentGhost: So what? It was not in the list and there are 100s of comments in this thread, you can't expect people to read them all. Hawk, thanks for suggestion. I have added your suggestion in.
husayt
A: 

NetBeans has also:

UT LN Some CT

:)

THeK3nger
why this marked minus. I don't see anything wrong with this answer.
husayt
+1  A: 

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.

devarni
+1  A: 

No one has mentioned XCode? It's great.

PEZ
Can you elaborate on what is great about it. You can use acronyms we used above.
husayt
+1  A: 

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.

abbot
Thanks, added, but without mentioning it is lightning fast and etc..;-)))
husayt
+1  A: 

I usually use good ol' gvim.

Kaleb Brasee
A: 

Pydev with Eclipse (with the VI plugin!) best of both worlds

A: 

I use Editpad Pro 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.

tgray
+1  A: 

Eclipse with PyDev

DNS
A: 

I am using 3 different tools:

  • PyDev when developping regular Python code. The debugger is great.
  • Komodo Edit for web apps with Django. I like the HTML, CSS, Js editor.
  • SciTE for single file. It is lightweight.
luc
+3  A: 

IronPython Studio - Microsoft's 100% compatible Python implemention integrated with Visual Studio 2008 and it's free.

Jeffrey Hines
Do you have to BUY Visual Studio 2008?
Christopher Mahan
No. It uses the Visual Studio Shell.
Jeffrey Hines
+3  A: 

I use vim to write very small Python scripts and ipython for interactive experiments and investigations of unknown APIs.

I also use pudb for debugging Python code.

However, my favourite Python IDE is leo. 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.

JS_is_bad
it's also possible to use [ipython and Leo 2way bridge](http://webpages.charter.net/edreamleo/IPythonBridge.html), though at this time it's restricted to 0.9x ipy [ref](http://groups.google.com/group/leo-editor/browse_thread/thread/97ebffecffe02729)
matt wilkie
A: 

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

Binary Phile
+2  A: 

There's a new contender for Windows that I code named Pfaide 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
utku_karatas
+3  A: 

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.

Tomas Brambora
+2  A: 

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

Etienne
+3  A: 

Wikipedia comparision of Python IDEs http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python

+5  A: 

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.

Ken
A: 

I've had good results with both pydev/eclipse and wing ide. wing ide is commercial, pydev/eclipes is free/open source.

devadvocate
A: 

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.

ErikT
+1  A: 

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

A: 

Very nice list, this is going to be very useful.

Dr Hydralisk
+27  A: 

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

jacob
This seems very promising.
Kugel
I am already using the preview release and I don't plan on using anything else. It's got a few bugs (it's not even alpha) but its usable.
Infinity
Pretty good... but I notice it somehow getting sluggish-er day after day.
Hugo
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 Sbarnea
@Hugo- I notice it getting slower too (I'd like to attribute this to Java...) but after the slow start up, it's pretty fast.
DMan
+1  A: 

I use Dr.Python (ver 3.11.0) and SciTE , Dr.Python is pretty good, though it hasn't really been very popular !

Arkapravo
I checked Dr. Python out, ended up coding the whole night in it. It's great!
Wez
@KeyboardMonkey : It is funny that such a smooth functioning Python IDE has not been popular. People love eclipse (which is difficult to work with, and has tons of nuances associated it) and Netbean; while Dr.Python finds no favour !
Arkapravo
A: 

I use LEO which really is more than just a programmer's editor and deserves it own category.

1.01pm
A: 

Has anyone had experience with spyder? I cant see it mentioned but it does look promising..

radek
it is mentioned, number 28
SilentGhost
Good point - the name is misspelled and that's why i must have missed it while searching...Anyway, I had a go with spyder over the weekend and found it pretty good. Has everything I'd like IDE to have..
radek
+1  A: 

The wing IDE but jetbrains has something new: http://www.jetbrains.com/pycharm/index.html

kellerapps
+4  A: 

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

Jeff Gonzalez
It's now been released as of October 2010, and pretty great.
gbc
A: 

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

locojay
+1  A: 

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.

jgbelacqua
A: 

You can use Eclipse with a Python compiler.

Mehdei
Do you mean another one than the first on the list (PyDev with Eclipse)? Please be more precise: what the name is, a link would be helpful too, comparative information as asked above...
RedGlyph
Python does not have a compiler ! ..... please don't use this type of terminology ! ....
Arkapravo
+2  A: 

DreamPie, however much of it is derived from IDLE.

Arkapravo
+1  A: 

I am using PyDev 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.

daitangio
+2  A: 

For Windows, PyScripter is the by far the best that I've tried. Very simple and clean.

Already mentioned: http://stackoverflow.com/questions/81584/what-ide-to-use-for-python/598573#598573
Blorgbeard
A: 

Idle is good enough, fits my need. If you prefer an IDE ,I recommend wingide

Momor
A: 

PyDev with Eclipse

+2  A: 

I'v been using Spyderlib for some time, and its really worth trying.

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

http://groups.google.com/group/pylons-discuss/browse_thread/thread/4f41aef28be741e5

soj
+1 I've never heard of this one before
Seth
+2  A: 

Not only for Python, but also for other languages, I use Scribes.

  • 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.

Wan
+5  A: 

Pycharm: http://www.jetbrains.com/pycharm/

yedpodtrzitko
looks good, thanks
milan1612
A: 

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.

Musaffa
+1  A: 

Actually where is monodevelop, which has nice python plug-in too.

entd