Best Cross-Platform, GUI Editor/IDE For Python?
What do you find is the best text editor for Python software development? I've tried several, and I'm always frustrated by the limitations of each. Eclipse is cool, but it's huge, and I've had multiple problems with corruption of the workspace. It got so bad at one point that every week or so I was tearing it down and recreating it. I spent so much time re-creating Eclipse's workspace that I found any productivity gains were lost due to Eclipse's brokenness. (Read more below.)
Morgan Greywolf continues: "I've also done the Emacs thing. Emacs is cool, but I found that I missed code browsing. So then I installed the Emacs Code Browser, Semantic and associated elisp code and found that it didn't work right half the time. I also seem to prefer either vi/Vim style editors, CUA-style editors, or WordStar-style editors.Unfortunately, there are no GUI WordStar-style editors and none of them are cross-platform with Windows.
So, that left me with Scintilla/SCiTE. Which is nice, but, the code browsing doesn't seem to be able do autocomplete with PyGTK (to be fair, Eclipse's didn't work so well, either in that regard, at least not on the default Ubuntu install)
SCiTE loads fast, does nice Python highlighting, and has the ability to run code right from the browser. Unforutnately, unlike Eclipse or Emacs, there's no ability to do step/trace style debugging. *sigh*
So, okay, does anyone have any other ideas?"
komodo edit is an extremely powerful editor that works with a slew of languages on Windows, Mac and Linux. It is free as in beer. It is packaged by ActiveState as just an editor - but really it has many features that fall more into the IDE camp - yet it is light-weight and responsive - more like an editor. This review of komodo edit may be helpful.
Komodo IDE is the big brother to Komodo edit I guess. I've never used it because the cost is outside my budget. ($295 for a full single user license - there is a student version but I don't know what it costs)
SPE is free/free I believe. It is multiplatform and the price is right to at least give it a try.
All these and more are listed on the python ide page of the python.org wiki.
Personally - right now I use Komodo edit while I wait for python support in netbeans.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
How is IronPython?
Wing IDE, although I usually just work in Kate.
What I'm listening to now on Pandora...
If you have $300
Notepad.
Vi/Vim/GVim!
It's much easier to edit a letter than an animal.
Seriously though, one of the links on this page may lead you to what you seek.
I love TextMate on the Mac.
There is a "version" for windows:
http://www.e-texteditor.com/
Have you tried that yet? Its got a free trial at the least.
Emacs with python.el. Seriously, I'd never be without it. Not only does it have indentation and syntax highlighting perfectly nailed, but it gives you lots of niceties like an interface to pylint and etags for smart completion, but all the "standard" Emacs stuff like the ability to edit files that are only reachable by obscure methods SSHing to the firewall, sudoing to another user, SSHing to the final destination, and sudoing to root.
Rally, there's no substitute.
Dewey, what part of this looks like authorities should be involved?
Hi,
Personally I write Python code in Vi or Emacs but I noticed Peppy.
Peppy uses Scintilla, is inspired by Emacs and is fully extensible in Python. This looks like fun!
See http://peppy.flipturn.org/
I have tried a Python IDE called Eric but it takes too much screen space on my EEE PC.
Finally, I will probably try the Netbeans editor when Netbeans 6.5 is out.
T
http://www.die-offenbachs.de/eric/index.html
Nedit is good. I think it works on Windows through cygwin. Some features that make it stand out are good macro programming, regular expression support, and rectangular selection, deletion, and pasting.
This page has a list: http://c2.com/cgi/wiki?PythonIde (including some mentioned above).
It also mentions http://www.die-offenbachs.de/eric/index.html which is Free (speech and beer).
Personally, I use Gedit (though I know it's not cross platform). But there's a question. Why do you have to use the same editor on each platform? Are you moving around often enough that it becomes an issue?
I wank in the shower.
On Windows (even though SPE runs on it) I prefer PyScripter simply because that was the first IDE I used for python on Windows and I am fine with it.
Both the IDEs have syntax checkers - this is especially useful if you write some of your code on an editor like vim/emacs/gedit etc. and want to start editing that code in IDEs.
My advice is to choose an IDE and stick with it. Avoid shifting IDEs for python because of the indentation requirement and how each IDE might handle it differently.
... and I shall strike upon thee with great vegeance, furious anger and a slightly positive karma.
Erics Python IDE
Wing IDE
Komodo
If you're hell-bent on using an Editor, I can warmly recommend jEdit for Python stuff. It's the best Editor in existance.
And one more thing: There is this think called 'Google', you may have heard of it. It usually answers this sort of question in under 10 seconds.
We suffer more in our imagination than in reality. - Seneca
I have been using Boa Constructor now on Windows and Linux continously for the last 4 years.
(I even managed to get it running on solaris a few years back)
jEdit
It's a very nice full featured editor with a ton of plugins, including some Python specific ones.
Unfortunately I'm not sure if it will be able to dig into a library for autocomplete, but by default it has autocomplete for words in your current buffer.
I like this one: http://www.die-offenbachs.de/eric/index.html It's based on Qt4 so it should work on windows as well, though I haven't tried.
How about Boa Constructor? I've worked it on Linux, but the screenshots on the project's site on sourceforge are from windows, so I'm guessing it's cross platform.
Pasted from the Ubuntu add/remove description
RAD tool for Python and WxWindows application Boa-constructor is an IDE oriented towards creating cross-platform applications built on top of the Python language and the WxWindows GUI toolkit. It features: * visual wxWindows frame design, * object inspector and explorer, * syntax highlighting editor with code completion, call tips and code browsing for Python code, * syntax highlighting editor for C, C++, HTML, XML, config files (INI style), * documentation generation, * an integrated Python debugger, * integrated help, * a Python Shell, * an explorer able to browse, open/edit, inspect and interact with various data sources including files, CVS, Zope, FTP, DAV and SSH, * an UML view generator. Homepage: http://boa-constructor.sourceforge.net/ This application is provided by the Ubuntu community.
I've not used it cross-platform (the creator does) but you might want to take a look at Stani's Python Editor. Releases aren't that frequent, but the repository is updated more often and generally seems stable.
There's an out of date project on Sourceforge; development moved to SPE Project Page here.
fencepost
just a little off
I've had problems using Eclipse on Ubuntu before, the problems you had with Eclipse may be related.
1. Don't use the repositories for Eclipse. Download the linux version directly from the eclipse website, and run it.
2. Eclipse has problems with the default gcj jvm for Ubuntu. Solution here
I suggest giving Eclipse another look. Download the latest ganymede, fix the jvm, add http://pydev.sourceforge.net/updates/ to your update sites.
How about giving use TurboPython :)
Sorry but the fact that you like wordstar type editors made me think of my old beloved TurboPascal IDE.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
I couldn't resist, even though my karma will take a hit...
Blast a weekend into a text area that highlights, then every day add a routine that integrates with the cross reference generator, and don't you have an editor with code browsing after a couple weeks?
Since you are still reading comments after all of those good lists of projects where others have already done it, don't you want to do it yourself?
Trust me on this one, it's just a layout for Python on Eclipse so if you're already used to Eclipse it's no problem at all.
It's clearly not perfect (auto-completion doesn't get stuff from new classes you write, at least not in the version I'm using at the moment) but it's really useful.
Slickedit
I use different editors at work (SubEthaEdit) and home (vim) and amazingly, my brain doesn't hurt.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
And one more thing: There is this think called 'Google' [justfuckinggoogleit.com], you may have heard of it. It usually answers this sort of question in under 10 seconds.
Google will not give him concise recommendations based on personal experience from people he trusts. Slashdot will.
And one more thing: There is this think called 'Google', you may have heard of it. It usually answers this sort of question in under 10 seconds.
No it doesn't, jackass. A Google search returns a wiki with over a hundred different editors listed, a useless "article" from the equally useless about.com that starts out with "What is a text editor?", a marginally useful blog post which reviewed 6 editors with the conclusion that:
PyDev is the clear choice if you have Eclipse experience. If not, well, the situation isn't pretty. Perhaps you'll have better luck with one of the IDEs we didn't review here.
another blog post reviewing VIM's features, and a smattering of Sourceforge sites and project homepages.
None of these search results offer what the OP came here for: thoughts, experiences, insight, and anecdotal information from a massive collection of peers.
Your snide remark just makes you look like an asshead, and completely canceled out what little value was added by your mindless links to project pages (let me guess, you did a Google search!).
I have found there are just two ways to go.
It all comes down to livin' fast or dyin' slow. -REK, Jr.
For working on smaller projects i find geany to be indispensable. It has a comprehensive project mode, document browser and a symbol tree.
http://www.geany.org/
Better then google in this case would be programming.reddit.com.
There you will find that python programmers are whiny babies, and you should go use lisp or haskell like a real man.
Or someone will helpfully comment that "IDE's are hard, lets go shopping!"
But in all seriousness, the MOST of the folks at programming.reddit.com are pretty helpful, and that is a better forum for programming related questions then slashdot at the moment.
Blessed are the pessimists, for they have made backups.
I can't recommend Eric enough...
Since it's PyQT based, as of Eric v4 it's seamlessly cross-platform... and integrates really nicely w/ a number of vcs systems... I've tried a number of them, and it's the best IMHO.
Mind you, a coworker of mine swears by SPE, so take that for what you will :)
Just to run down the three I'm familiar with:
Eric4: cross platform; qt4+qscintilla based; great editor; ok class browser; good vcs & project management; good debugger; poor command completion; handles lots of filetypes (c++, js, ruby, python, etc). Command completion & class browser are my main complaints w/ this program.
SPE: cross platform; wxwindows based; great editor; excellent class browser; no vcs or project management; debugger?; good command completion; ONLY DOES PYTHON... uses os.startfile() for most other filetypes.
Not supporting any other filetypes, or project files, are my main complaints w/ this program.
WingIDE: cross platform; gtk based; great editor; great class browser; not quite as familiar w/ the rest of it because it's semi costly, and I'm a cheap bastard. Main complaint here: just the money :) Oh... and it's command completion (while probably the best I've seen) uses introspection to a large degree, so get ready to have your modules imported all the time.
All 3 are under very active development, and written in python directly, so you can hack them to your needs... Eric4 even has a plugin system.
Take a look at Leo ( http://webpages.charter.net/edreamleo/front.html ) which works wherever the python libraries it uses work (Linux and Windows, at a minimum). It supports multiple languages but does particularly well in python. The workflow concepts it introduces are *very* well worth the effort to learn. If you want to change Leo's behavior, you can add buttons, scripts or "plugins" in ways similar to (better than?) the way you can program emacs in lisp -- of course, the language you'll use is python.
jEdit is written in Java. That may be a recommendation or a condemnation, depending on your politics, CPU, and RAM.
Rich And Stupid is not so bad as Working For Rich And Stupid.
Sure, it's not a full fledged Eclipse style IDE with buttons and menus for "everything", but it comes with Python.
It's not x-platform (it runs on OSX), but it's probably the best editor I've ever used (and this includes Eclipse, Emacs, VIM, SNiFF+, MS DOS's Edit, VisualStudio, various Borland editors, Metrowerks, and just about every mainstream editor included in various distributions of Linux).
It supports Python as well as dozens of other languages; I've used C/C++, Perl, shell scripting, PHP and HTML on it; looking at the menu I count 42 different languages or variants. It supports multiple SCM types, including CVS and Subversion.
http://www.barebones.com/products/bbedit/
Even better: the company is great. They came out with a new version 8 months after I bought the previous version, and sent me a free key to upgrade!
Although I agree that Eclipse is huge, bloated, slow, and buggy, I haven't run into problems as serious as the ones you've described. I have to restart it every once in a while, when the text editor (you'd think they could get at least this part right) gets fubared and starts displaying gibberish onscreen, but I've never had the workspace become corrupted, or anything else that isn't solved by a restart.
I've been working with Eclipse and Pydev for a couple of years, and it gets the job done. There are plenty of things that I wish were different, or less buggy, but after considerable searching and experimenting with most of the other products mentioned here, Eclipse still works better.
I myself would love an up-to-date version of Brief. I was even more productive in Brief that I've ever been in my second love, emacs.
I have no idea how good it is, having never used it or Brief, but there is a brief-mode in Emacs for "CRiSP/Brief". It does say in the comments that it's meant as a transition away from it, but maybe it works in reverse too.
Why use an IDE when butterflies will do it for you?
UTF-8: There and Back Again
I did my master's thesis in eric3 and enjoyed it very much. I originally started my project using emacs, but migrated over when I needed integrated debugging tools.
eric added the visual debugging you were asking for. You can set breakpoints all over the place, step through the source, and navigate through the variable hierarchy. Good stuff.
I think the only thing that annoyed me somewhat about eric was I couldn't set a light on dark theme, so my late night coding sessions wouldn't annoy the mrs. But that's just cosmetic.
Bonus points if your name happens to be Eric, I suppose.
Personally, I enjoy using geany. http://www.geany.org/
I've tried most of the editors out there (although I admit I'm not a fan of Emacs/Vi(m) styles). I have settled with eric for my Python editing; http://www.die-offenbachs.de/eric/index.html
I'm not a python guy, so I don't know if anyone takes it seriously, but there's an IDE that's supposedly packaged with Python called Idle.
Given that it hasn't been mentioned yet, I'd say there's a decent chance that idle is pants.
Comment removed based on user account deletion
It should run on windows now, right?
I'm currently working on a project embedding Python into a Java app via Jython. Using Netbeans with the nbpython plugin has worked pretty well. The only problem is the occasional exception thrown from NB, and having to use the absolute latest NB build for compatibility. With the recent spurt of development centered around Jython, Django, and the nbpython plugin, I wouldn't be surprised if even the minor bugs had been cleared up.
I will also say that Jython plus the Netbeans Swing form editor is the best thing to happen to Java ever. It makes dynamic GUI's a hell of a lot easier. Java scripting just rocks.
I love TextMate. It's the greatest thing I've ever used for programing.
None of these search results offer what the OP came here for: thoughts, experiences, insight, and anecdotal information from a massive collection of peers.
How deep into your search results do I have to go to find these things?
I have found there are just two ways to go.
It all comes down to livin' fast or dyin' slow. -REK, Jr.
Eclipse with PyDev work fine for me.
So you can code everywhere, anytime!
It's really odd that this just came up because I just revisited this very question. I have been using Eclipse with PyDev on Windows for about a year and generally like it. Eclipse can be a bit of a bear depending on your hardware and PyDev's auto-completion can be spot on sometimes and utterly useless others; however, generally it runs pretty well. I haven't had any stability issues at all with it. That being said, the more I use python, the fewer features I need in an IDE for some reason. One feature I really do like having though is reliable code-completion when I am writing code for wxpython. Wing is perfect in that regard. I have just recently switched from PyDev on Eclipse to Wing and am very happy with it because of code-completion and debugging. Wing's debugger and auto-completion features kick the crap out of everything. If you're doing open source work and want the professional version it is completely free. If you want the pro version for non-free software development it costs about $150. It's worth every penny if you want very accurate code completion. It also has emacs key bindings if you want them. I rarely have to use a mouse because they are so good. The debugger is pretty good too. I just started doing unit-testing so I am not experienced enough to have an opinion on it, but wing supports that too. My only complaint about Wing is the lack of a regex editor; however, I don't do a lot of regex so when I need one I just use regex buddy. Ultimately it comes down to what feature you need. Try them all out and pick the one that doesn't get in your way. If things work for you like they have for me, you may find that the editor generally doesn't matter other than for the handful of features you actually use regularly.
I have no answers. I use xterms with vim these days.
but my favourite editors ever were CygnusEd on Amiga, and StrongEd on Acorn RiscOS.
vim works for me, because although it doesn't have the fancy features of an IDE, it does allow me to work on any machine anywhere.
But I do particularly miss StrongEd. That had some great features I've not seen anywhere else. Wonderful for editing lists as it had a feature that allowed you to select a block of text, then move the cursor into the middle of a line. Whatever you inserted or deleted was replicated on every line selected.
The reason girls and Windows users don't understand UNIX is because all the documentation is in Man files.
Really, WingIDE is the best Python editor around. It works a little differently to other editors, but once you're used to it, it's amazingly powerful. It has the best code-completion of any Python editor (and believe me, I checked them all), the debugger works well and the search function is super-fast and therefore very handy for refactoring. Support is excellent via a mailing list, and there is a cheap version available (about $30). Try it out and work through the tutorials, it really is the best one out there.
FTFY.
Syn (Windows) and Smultron (Mac) are nice open source general text editors that are pretty similar to each other. I don't use them much for Python, since they don't support code completion. They support tabs and "projects" of related files, which is nice, so I use them a lot of website related stuff. I've always used PythonWin and Idle since they support code completion, which is good when you just can't remember the name of that function you need, and they both do a pretty good job of knowing what to expect and finding syntax and variable type errors in Python before you run the code. They also both support a interactive mode shell for Python, which is great for testing out code before you really get to work on it. I just recently installed Eric, which is a Qt based Python IDE, but it's just too big and cluttered for me.
Here's what I have discovered through blood, sweat, and tears:
* Use Eclipse 3.3.2 (instead of 3.4.x -- I found 3.4 to be VERY unstable with PyDEV -- and the debug shell doesn't work)
* Use PyDev 1.3.20 (or later)
* GET Pydev Extensions -- it's well worth the $42 (gives you an interactive debug shell and PyLint integration)
* Virtual Word Wrap (it should be built in, but is not).
I've found that its best to NOT let Eclipse copy files to its "workspace" directory -- force it to use the existing files. I have adopted the habit of taking regular tarball backups of the workspace directory (and files I'm editing). Be sure you set your PYTHONPATH properly in your debug configuration, turn on line numbering and display of whitespace characters.
Unfortunately, I haven't found any IDE that is as mature and complete. If you must use something else, I recommend Geany. WingIDE is also good, but lacks support for Projects, sophisticated debug configurations, etc.
Although I can't stand Eclipse as a platform thanks to its overall bloat and instability, I've found that a minimal Eclipse installation with PyDev does pretty much the best possible job when it comes to Python development. Compared to KomodoIDE, which I also tried, PyDev has far superior code intelligence. I am not an experienced Python developer however, so my opinion is probably a bit less valuable.
ShowMeDo has IDE videos showing PyDev, SPE, Wing IDE, GEdit and IPython in action. They'll help you figure out which one to try, without having to invest the time trying each one. Disclaimer - I'm a founder of ShowMeDo, it's all about peer-produced tutorial videos for open-src with a big focus on Python.
I think you should give Eclipse another go. I agree with poster above that suggest you download Eclipse directly from the Eclipse Website instead of using distro rep
Eclipse with PyDev has been my choice of Python/HTML IDE for past 3 years or so, on both Linux and Windows.
-- we turn sound into light...
Hi,
I use Komodo Edit (like a lot of others here). The toolbox feature is kinda handy too, you can put commonly used commands in the toolbox and just double click them to run on the current script. Currently I've got a python script that automatically ftp's the file I'm working on to a specified directory and one that launches the current script into WinPDB which is quite simply the best debugger I've ever used. http://winpdb.org/
Cheers,
Stuart.
Comment removed based on user account deletion
I think eric3/4 with the appropriate plugins will do what you are asking.
---- Booth was a patriot ----
A great lightweight IDE. I use it for pretty much anything, even for a regular text editor.
http://www.geany.org/
http://sourceforge.net/projects/geany
http://en.wikipedia.org/wiki/Geany
From
http://wingware.com
It's commercial. Well worth it.
I might choose Komodo for building web apps that have components written in several languages, including python. For pure python applications, Wing is the best.
Projects, debugging, scm support, code completion, embedded python shell, separate search within a file and across files...
It's much less clunky than PyDev. It's faster and more python-centric than Komodo. And it's much more polished than Eric4.
The company is dedicated to python and provides passionate support with rapid response.
Finally, it's written in python, so it's both fully cross platform and extensible. I've started writing extensions for doing some money management activities from inside the IDE. Very cool.