Have never used pydev/eclipse but pycharm is sooooo good, that I had comment here too. Don't know if pydev comes with django support, database viewer, html/css/web support built in, material UI's, tons of extensions, sexy debugging, remote host uploads etc. working with PyCharm has been an absolute joy in the last few month's in which I've been using it on a daily basis. PyCharm Community Edition is ranked 9th while Eclipse with PyDev is ranked 22nd. The most important reason people chose PyCharm Community Edition is: PyCharm includes sophisticated heuristics for determining what each variable type is and providing autocompletion suggestions for them.
Until recently, I hadn't looked into Python IDEs for several years; I'm not generally an IDE person — I usually use Emacs. When I last checked them out, Python IDEs were a dismal lot; it's not easy to write tools for a dynamic language, because they have to analyze the code, and a lot of its behavior is hard to predict before runtime. Now, however, one point has become especially evident to me: Python IDEs have improved greatly. If I were starting out as a Python programmer today, I might well choose an IDE — some of them are really impressive. I've tested and reviewed many of them, so below you'll find a comparison of Python IDEs in alphabetical order:
Eclipse with PyDev
Full disclosure: the word 'Eclipse' in a programming context (or a literary one, for that matter) fills me with dread; in my mind, Eclipse is a pig strapped to a dog strapped to a whale. I'm reluctant to install Eclipse because it's such a large application; some would say bloated. In view of that, I'm somewhat biased against PyDev — but I've tried to evaluate it fairly, and it impressed me much more than I expected.
Installation of PyDev is a little more involved than many of the IDEs reviewed here, because Eclipse must be installed separately. Then, Eclipse must be closed and run as an administrator, you must add the software source for PyDev, accept its certificate, and wait while the plugin installs. Then you must restart Eclipse as a normal user. (Excellent instructions are available from pydev.org.)
Boss office products perfect posture. This Black Fabric Deluxe Posture Chair comes with a thick padded seat and back with built in lumbar support. It has an adjustable back depth that can be easily customized for your personal needs.
My initial reaction was that it's good, but somewhat cumbersome. Code navigation is well-done and effective, and auto-indentation and de-indentation works beautifully. Auto-completion works well and makes excellent suggestions, but the user-interaction implementation is awkward; in some circumstances, for example, if you have a list narrowed down to a single suggestion and you want to type something else, you have to hit Escape to get out of the auto-completion list, moving your hands out of their typing position. Creating a new Python file in a project sometimes takes several seconds, for some reason. There is code folding available for classes and functions, but for some reason not for any other kind of block. The debugger works fine, but its user interface — it opens a different debugging view rather than integrating debugging into the regular PyDev view — is just more scattered than it needs to be, with extra chrome everywhere making available space so small that you have to scroll around to see everything.
PyDev does have something few of the other IDEs here have, which is remote debugging; if that's important to you, you'll have to use Emacs or PyDev, which are the only realistic options I found that have it.
Eclipse and PyDev make a pretty good IDE on the whole. If you're an IDE person already accustomed to Eclipse, and you like it, I'd give PyDev a try so you can use a tool you're already comfortable with. If Eclipse isn't important to you, but you want an IDE, I'd try PyCharm, which offers all the same features in a cleaner, faster, better thought-out package; still, PyDev is not a bad choice.
Eclipse Vs Pycharm
Eric is an IDE written in Python with PyQt. It integrates some familiar Qt tools, such as Designer and Linguist, uses the ubiquitous Scintilla editing component, and has some tools that look like they would be really useful.
That's about where I end with Eric, because it has a very serious drawback: it has a very complex interface with low discoverability and very little documentation. It feels like it was designed to make the user feel stupid and impotent. Where I was able to drop right in and use other editors and IDEs on this list, and consult the documents for the bits that weren't obvious, Eric stymied me at every turn, and though its plugin API is documented (by a tool, I think), there are no user docs included. None. Zero docs.
You will no doubt forgive the tone of frustration in this review.
Auto-completion didn't appear to be turned on at first, so I dug through the preferences and enabled it in two places, which I think was necessary. It was awful — ludicrously bad, in fact, so I searched and found references to alternate plugins for auto-completion. I installed one of those, based on Rope, went through the preferences to enable that, found change but no improvement — and gave up in disgust.
Auto-indentation is barely acceptable. The GUI designer, Qt's Designer, is good enough, but good luck finding it. Hint: it's not in the menus. Debugging works, and claims to be able to debug remotely, though I didn't test it. Oh, it's disabled in the preferences.
Refactoring? Don't know if it works; I never saw the menu become enabled. Maybe it's disabled in the preferences too, but I couldn't find a setting for it. There are extensive customization options for the totally useless help viewer, though, if that helps.
I've seen dog turds with a better user experience than Eric.
IDLE comes with most distributions of Python, and describes itself as 'the Python IDE built with the tkinter GUI toolkit.' It advertises the following features:
- Coded in 100% pure Python, using the Tkinter GUI toolkit.
- Cross-platform: works on Windows, Mac and Linux/Unix.
- Multi-window text editor with multiple undo, Python colorizing and many other features, e.g. smart indent and call tips.
- Python shell window (a.k.a. interactive interpreter).
- Debugger (not complete, but you can set breakpoints, view and step).
All those features are in fact present, but they do not really make an IDE. In fact, while IDLE offers some of the features you expect from an IDE, it does so without even being a satisfactory text editor. The interface is buggy and fails to take into account how Python works, especially in the interactive shell, the auto-completion is useless outside the standard library, and the editing functionality is so limited that no serious Python programmer — heck, no serious
typist — could use it full-time.
If you use an IDE, it should not be IDLE.
ActiveState supplies an excellent distribution of Python with 'extra batteries', and their distributions of Perl and Tcl are also fine, but they should leave the Python IDE business to others. To pay $295 for Komodo IDE would be outrageous; it does little that PyDev won't do for free or PyCharm for much less money, and much of what it does do only nominally works, at least out of the box on Ubuntu.
PyCharm is built by JetBrains, the people behind IntelliJ IDEA, WebStorm, RubyMine, and other powerful single-language IDEs. They certainly know IDEs, and their experience shows with PyCharm. It's a polished, powerful, versatile IDE that works well and quickly and has a lot to offer.
PyCharm really has it all as an IDE: code highlighting, auto-indentation that really works, customizable code-formatting, the best Python auto-completion I've ever seen (though it took considerable time to construct indices on first creating a project), on-the-fly error detection (plus spell-checking, which I find dubiously valuable), snippets, code-folding, smart quotes, brackets, colons, and even arguments: it's really remarkably capable. It has powerful project navigation tools, automatic error-correction suggestions, excellent refactoring tools, documentation browser, Python debugger, unit-testing tools, and more. It's excellent.
PyCharm comes in two versions - a community edition, and a professional edition. The community edition is free (as in freedom), whereas the professional edition is partially-proprietary and ranges in price. They offer the professional edition to open source projects and educational institutions for free, whereas the price ranges from $29 - $199. You can checkout the full pricing here.
If I were a developer who was almost solely tied to Python, and I hadn't already invested so much time in learning how to do everything PyCharm does with Emacs, I would strongly consider switching to PyCharm. You should definitely put it on your short list.
Wing IDE Professional Edition (the edition I evaluated) is about the same cost as Komodo IDE, but that's where the similarities end. It's fast, full-featured, and it works. Auto-completion and auto-indentation are as good as the best reviewed here, integrated testing and debugging work well and have intuitive interfaces, and though the refactoring options are very limited, they work well once you figure out what selection should be in place before running the tool.
Snippets are present but not as cleanly implemented as in PyCharm or, even more so, Sublime Text; still, they're reasonably sensible defaults, and you can edit them and add more.
A few miscellaneous points: Wing can do Django projects, integrates diff and merge, a good Python shell, an OS command interface that I found confusing and inferior to a mere console, and generally does about all you'd expect from an IDE.
I found the UI better than Eclipse/PyDev and slightly less well-planned than PyCharm, and it is less laggy than either. Wing is a very good option but pricey; if I were shelling out the cash, I'd note two things: the Personal edition omits only a few features I'd consider useful, and costs much less; and PyCharm, which is just as good on the average but slower, is about the same price as Personal.
Comparison of Python IDEs Summary
There are some very good options among IDEs: if you want a free one that works well, install Eclipse and PyDev; if you are willing to pay money, PyCharm and Wing IDE have similar capabilities and are both excellent IDEs. There are also some disasters to be had, both free and otherwise, but clearly IDEs for Python have advanced in the last decade, and can stand comparison to tools for less dynamic languages.
For another take on Python IDEs, checkout Sergio's article.
I was fortunate enough to stumble into a free trial of PyCharm right at the glorious 3.0 release. There was a flurry of rants and raves running through the Tech Art community upon this release and for good reason. With 3.0, JetBrains released an Open Source “Community” version which is fully featured. After using for a couple of days, I was hooked and splurged for a commercial license through my company, though I was prepared to scrape up all the spare change in the house to afford the Personal version and use it for the rest of my life.
Pycharm has all the usual features you’ve come to expect from any decent IDE: highlighting, completion, etc. The hotkey/popup features are quite awesome. CTRL+SHIFT+R (Navigate -> File) is the fastest way to open files in your project. The CTRL+SHIFT+A (Help -> Find Action) is your shortcut to all other shortcuts and popups.
If you spend a lot of time pointing to your mayapy.exe and adding and removing paths from your workspace, you’ll appreciate how much more intuitive these dialogs are than PyDev’s.
The Perforce integration is almost too good. It tries manage the ‘Current’ or ‘Active’ changelist and will automatically add any file you start to modify to this changelist. It is a little annoying the way it tries to organize every file you have open amongst the changelists but once you get used to it, it starts to have its benefits. PyCharm also keeps a list of recently used changelists which is quite handy, actually.
‘Darcula’ is a beautiful color scheme which comes default. And when I say ‘color’ I pretty much mean the absence of it. Greys are where it’s at when it comes to staring at code all day. There’s the token oranges when needed as well, but you can customize all UI colors, per usual.
Oh, the auto-save will make you lazy (and fast) as hell, too.
PyCharm’s code inspection is the most thorough I have ever seen. It is so thorough that I turn off the strict adherence to PEP 8 standards as our company deviates from these slightly. I’m one of those “0 in box types” even in my IDE in that I always fix all code inspections. This has the added benefit whenever you open any file, you can immediately see if there are simple syntax errors by the code inspection color highlighting in the margins. In the process of examining all the inspection notes, there are fairly detailed explanations of what the issues are and it offers to automatically fix them whenever possible. It has actually been my secret teacher and made me a much better programmer.
Each language has its own style settings and the settings for Python are quite complete: indentation, spaces, wrapping, blank lines, etc. Every option is available. Then you just auto-format before you save and viola! You’re code looks perfect.
PyCharm fits nicely into my arsenal of coding tools right next to Wing IDE. PyCharm’s debugging uses the Pydev module which doesn’t compare to Wing Pro’s built-in features. Wing is still the king for real-time debugging of Maya and MotionBuilder or other external python applications, especially with the Debug Probe feature. But I’ve always used two IDEs in my day to day routine: Wing for debugging and Eclipse w/ Pydev for my main coding environment. PyCharm replaces PyDev as my main coding platform now.
The best part of PyCharm is it’s feel. It feels awesome, fast, tight, professional, snappy, very little crashing. Wing always feels a little slow and lagging. Eclipse/PyDev feels tighter than Wing but still doesn’t compare to PyCharm.
Download is available for Win, OSX, Linux and the Community version is now free and does pretty much everything you need. Then when you get hooked, go ahead and save up for a license (they deserve the 10th of a bitcoin).
All of this just scratches the surface really. I’m sure you’ll find several little goodies that make your day to day workflow a whole lot easier (list them here in the comments if you have the time!)
Do yourself a favor. Go out and install right now. You’ll never regret it. Enjoy!!