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?
Wing IDE, although I usually just work in Kate.
What I'm listening to now on Pandora...
If you have $300
Vi/Vim/GVim!
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 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?
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.
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
Comment removed based on user account deletion
I love TextMate. It's the greatest thing I've ever used for programing.
Actually, the one time I tried it, it managed to break everything and not work at all. But I had C Python installed in parallel, so that could have been the reason. However, C Python + Jython doesn't have that problem, so who knows.
Your ad here.
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.
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.
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.
I have used Boa constructor for quite awhile now on both win32 and Linux. I also use it to connect to my CVS server and Zope. Good Stuff.
Windows Haiku Chaos reigns within. Reflect, repent, and reboot. Order shall return.
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...
I haven't used it in about a year, so this might have changed. But boa struck me as fantastic to use 90% of the time. But the remaining 10% would be some of the most horrible lockups I've ever seen on linux, along with some linux specific bugs in a lot of different areas. I eventually just had to give up on using it. Things might have changed since then though, with all the wx updates that have come down the line.
Everything will be taken away from you.
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.
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