Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Professional Python IDEs?
15 points by JabavuAdams on July 18, 2008 | hide | past | favorite | 43 comments
Hey folks,

What are good Python IDEs, other than Emacs? What do people here use? Does anyone have direct experience with Wingware?

I code on both OS X and WinXP. I've used vim, Emacs, Textpad, IDLE, and TextMate.




I use emacs for all my coding work (multiple languages) and am very satisfied with it. I have tried Komodo and a couple of my colleagues at work swear by it--it's a bit bloated for my taste, but probably I am kind of old fashioned... (btw: same holds true for Eclipse--imho at least). It would probably be nice to know what experience you've had with emacs and why you are looking for an ide, then people might be able to point you towards comparable/corresponding emacs features...

(e.g. my problem is the completion feature with both python modes--i just can't get it to work, which is definitely a pitty, but probably i am just too incompetent :)


I respect Emacs, but the fundamental problem is that I want to get things done, not play with the plumbing of my editor. That can be interesting, yes, but I have many other plumbing projects with higher priority.

I liked using Emacs + SLIME in the Practical Common Lisp LispBox bundle, but didn't really feel like I was in control, because I simply don't know Emacs well enough.

Actually, about every 6 months or so, I go on an Emacs kick, but stop after a few days. Hmm, maybe it's that time again.

At work, I use Visual Studio. It's annoying, but with Visual Assist X, it's good enough. The devil you know, and all that. I can do almost anything I need to, without mousing.

At home, I've switched my main machine to a Mac Book Pro.

Hmm. That's where some of the recent dissatisfaction comes from: I'm using a notebook keyboard.


Hey, I am sorry for the delay (I am on CEST).

The interesting thing is: I can get things done in emacs much better than in anything else, since I am using tramp/dired+/cperl/auctex/re-builder/shell/svn/ediff/gud/etc.(could go on forever ;) which give me a competitive edge when compared to other tools; I was a heavy vim user (7y) before and still use it if it's just a typo or something like that, but vim has its own problems (different machines, different versions)

especially tramp is very much appreciated in web development environments, since i can just use any remote host as a local one...

ps: if visual studio means doing something in c# (the only thing i am not doing in emacs ;) i can heartily recommend resharper from intellij--without that visual studio is unbearable to me and always reminds me of vs 6.0 in the late nineties when it was still considered a good ide...

pps: i started using emacs just a couple of months ago, so if you are struggling, just give it a try--the juice is definitely worth the squeeze


There is also external completion for Emacs with rope library (http://rope.sourceforge.net/), which also provides some refactorings. It is very useful, but not always stable.


Thanks -- I will give it a try (since I am too stupid to get pycomplete working...)


Komodo is supposed to be pretty nice, although I haven't used it myself (happy with vim):

http://www.activestate.com/Products/komodo_ide/feature_showc...


I use Komodo Edit, and I love it. It has everything I need, is customizable, and was recently Open Sourced. I would be hard pressed to switch to something else.


Second Komodo Edit here. Although I used textmate/e (windows) and there where a few features there that I preferred over komodo


Another vote for Komodo Edit. Runs on Windows, Linux, Solaris and Mac, so I can use the same tool wherever I'm working (and edits files remotely too).


does it ship with a debugger?


Komodo is the best that I've found. I like vim for editing individual files, but I prefer the mouse for jumping around a project. Komodo has decent vim key bindings and so I get the best of both worlds.


I use Eclipse 3.4 on Windows with Pydev/Pydev extensions. I really like the mark occurrences feature - even made something like it for Emacs, but it's not as seamless.


I must admit, I have a hard time knowing what I'd need an ide for when I can use emacs and have a python interpreter running inside it. I haven't worked on any python projects large enough to make me need help navigating the code though.


I've been using Wing 101 for the last couple of months (after reading the Python IDE reviews on Jonathan Ellis' blog), and I've been fairly happy with it.

Links to the reviews:

http://spyced.blogspot.com/2005/09/review-of-6-python-ides.h...

http://spyced.blogspot.com/2006/02/pycon-python-ide-review.h...


Eclipse with the PyDev plugin is very nice also. I'm using that on both OS X and Windows.


I'll second PyDev Eclipse. I just started a Python project after not using Python for several years, and have been fairly impressed thus far with PyDev.


PyDev is good, i have been using it since 4 months ago. it has all Eclipse power, awesome texteditor, perspective, view,etc,


I'm addicted to WingIDE (Professional). The killer features for me are vim mode, fast context-sensitive autocomplete, cross-file go-to-definition, automatic syntax and indent checking, and "Source Assistant" which shows you the prototype+docstring of whatever function you're in the middle of calling. Altogether it's significantly faster than vim alone, which is what I was using before.


I do my development on WinXP and most of my work is in Python/Django. I am using PyScripter and I am pretty satisfied with it.

Previously I used Eclipse + PyDev but found it pretty slow and sometimes buggy. The debugger used to hang a lot even for simple python scripts. I switched to PyScripter and found it way better than any other free IDE available.

PyScripter is perfect for me in all sense except for debugging. The debugger is a bit unstable and does not work well with django.

Few days back I tried WingIDE. Being a Windows user I have a few issues with its look & feel as it is in GTK but prolly a *nix user feel will feel more comfortable with it than PyScripter. I've found its debugger better than any other and works for django perfectly. Stability is also good. I think it is worth the price.


Wing and Komodo IDE are great if you get somebody to shell out the cash. I think everybody should have a main editor, that may or may not be vim or emacs, but also learn one of these, since they will always be available on whatever platform you're forced to use.

http://praisecurseandrecurse.blogspot.com/2008/04/abysmal-st...

http://www.protocolostomy.com/2008/04/28/ubuntu-804-and-pyth...

http://news.ycombinator.com/item?id=130429


Wing - I found this very useful with good debugger, auto-complete, project management and it is scriptable in python. Can be a bit slow at times though - you need a good machine to run it.

emacs - I ended up getting frustrated with the number of different options for python (ECB vs rope vs python.el vs python-mode.el vs ...) and I also couldn't get auto-complete working too well and it seemed to take a lot of setting up. It is good to have choices but as a novice it can be somewhat bewildering.

SPE - no-one has mentioned this yet but I found it usable - auto-complete is surprisingly good. With some project management facilities it could be very good indeed. Worth a try...


> Can be a bit slow at times though - you need a good machine to run it.

This is one of my pet peeves in IDEs. I can't stand slow-down or random auto-complete pauses.


Dual quad core xeons, 4 gigs of ram, and a RAID 0 dual 2.5" SAS drives, 73gb 10K rpm solved that problem for me.

Also, I hate how much hardware it takes to make anything run well.

Moore's Law is wrong about cost, it takes the same amount of money as before to make things run as well as it used to.

Honestly, if we're going to use languages like Ruby/Python/Perl which are so expensive on cycles it's ridiculous, can we save ourselves some computation pain, and skip the rest of the way to SBCL? Please? It's a minor speed penalty compared to ruby.


I've found it very hard to find an IDE that works properly with Django.

In particular, there seems to be no way debug code while using the Django dev server with its autoreload feature. This means that either you don't debug code, or you have to restart the Django dev server every time you make a change. Very annoying.

Also, I haven't been able to find any Eclipse/IDEA level features in a Python IDE... things like being able to ctrl+click on an object to see where it was defined, or a "Find Usages" feature.

All in all, I think there is a huge opportunity to innovate in the web IDE department. Python, RoR, and even PHP all still need a killer IDE.


My experience with PyDev+Extensions/Eclipse: [1] got (great?) interactive debugging, [2] fairly smart code completion (works for most Django stuff, see below), [3] plus all the other Eclipse niceties: a decent HTML/CSS editor (with WST), SVN integration, Mylyn with trac integration (manage trac tickets from inside Eclipse: nice), etc.

I configured the Django source as another project in Eclipse and make it a dependency in all my Django-based PyDev projects. This makes it possible to click on a class or function name and directly jump to its definition/declaration/source. That's better than any documentation.

Maybe the reason this works for me is that I also got the PyDev extensions? Even if it's just to support the PyDev developer with some cash, there are a few additional features in the extension that definitely improve productivity; see http://www.fabioz.com/pydev/. I configured the integration with PyLint, which helps a lot with coding style, especially since I am--for all intents and purposes--a novice to Python (4+ months of working with it).

Here's my take on the whole debugging Django issue:

a) In my experience, only a small fraction of development time is spent debugging. With the proper code structure/patterns/unit testing, little debugging should be necessary. This may be a controversial statement, but that's how I see it. For all the normal development use cases, just running the Django development server with default settings is fine and one can still edit inside Eclipse and get automatic reload. I have used debugging mostly to discover the framework (and Python) itself and found it extremely insightful, but did not need the reload feature then. Discovery can also be done in the interactive console, though.

b) If there is indeed a need to have a rapid change-debug cycle, the keyboard shortcuts to start a debug configuration in Eclipse allow a quick stop/restart of the development server with the --noreload option. The request can be made with the test client provided by Django; see http://www.djangoproject.com/documentation/testing/#the-test..., so one keyboard shortcut gets you to your first break point, without even using the browser.

I know Eclipse is a bit on the heavy side. A few gigs of RAM and a dual-core CPU help. I also do a fair amount of cross-language development and like the Eclipse platform for the breath of available language and tool support. In the past, I've used it extensively for PHP development and of course Java.


I've run into the Django reloading issue too, with Eclipse. If there is a solution I'd love to hear it...


by changing the run configuration for manage.py: run the manage.py file (open it and hit F9), the console will show you a help message. Now go to the menu and find your run configuration for manage.py. Navigate to the arguments tab and just add runserver --noreload. Thats it.


Then you can debug, but your changes aren't picked up unless you restart the server -- which is exactly what dabeeeenster and I are complaining about.


I've tried Wing personally, but it was just too much pretty but superfluous GUI stuff all over the place.

As a primary editor I use xemacs21 in full-screen mode with everything extra disabled; I typically have 2-3 instances running (due to parallel development in multiple branches) with 200 open buffers.

I'd love to pay $$$$ for a GUI that would make more efficient but I sppose I may be stuck with xemacs forever.

Ropemacs was the last impressive thing I saw, but it was a bit buggy. I don't seem to have need for refactoring, tag search is enough for me to navigate and dabbrev-expand based on other buffers contents is usually enough for me.


Vim


I've tried them all and keep coming back to VIM. You can get intelli-sense, err I mean code completion and it integrates right into VIM. It's just fast and minimal. It just works.


Maybe it's just me, but I actually find the intelli-sense annoying in vim. I prefer the normal ctrl-n/-p without the popup (too distracting/slow/etc).


ctags + taglist (http://vim-taglist.sourceforge.net) and a proper .vimrc and .vim/plugins cover mostly everything you might need.



looks very promising! I look forward to checking this out.


"... have you tried Eric? ..."

also check out 'Idle' the standard editor issued with Python ... sorry I couldn't resist ~ http://en.wikipedia.org/wiki/Eric_Idle


I'd check out the free version of WingWare first. It feels not so polished in terms of the GUI, but the features/integration with Python in general is pretty sweet. What are your complaints/missing features of some of the other things you've used?


I have minimal experience with Wingware, but have found it impressive and am spending more time with it. Previously I've done all my Python in IDLE and Textpad.

I'm also going to give Fedora a shot. As bloated as it is, free is nice.


*Eclipse


I tried Komodo and PyDev, now I'm back to my favorite editor SciTe. Sufficient for me as I don't work on large Python projects.


SciTE is a fine editor; it was one of the only ones I liked before I fell under the emacs spell. Now I can't use anything else, but I can certainly second the recommendation if you're not willing to fully invest in emacs (takes time, but completely worth it!)


I'm enjoying e-texteditor, its basically textmate for windows (but its not free)


gedit, with the syntax highlighting, and the inbuilt terminal. The neat 'Oblivion' text highlighting theme is really readable. glipper for a stack based copy-paste buffer.

Only for Linux alas.




Consider applying for YC's first-ever Fall batch! Applications are open till Aug 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: