Python IDE for Mac OS X?
benbranch asks: "I am presently learning the Python programming language. The language itself is brilliant and seems very easy to pick up, however my problem is finding a decent IDE. I use Mac OS X (as Windows is excruciating), and though I love Linux (Debian/Ubuntu) all my work computers are Mac's. Can anyone advise me as too a good open source IDE for Mac? If there are any Python programmers out there using Macs, I would love to hear from you."
...this list of Python Editors?
Quite a lot of them work on OS X, and personally I would recomend eclipse (although I have only used it with Java, so I do not know how well it works with Python).
i'm in a similar situation, having just bought my first mac, but i'm looking for ruby ide's. os x is fantastic, and so far ahead of desktop linux, i dont want to go back. one thing that lets it down though, are the ide's available. i've settled on eclipse, since it handles python, ruby etc. you do need to install python/ruby support, but it's easily done. the python extensions can be found here: pyDev
i wish i was but oh well
Aparently Objective C is perfect and all you need
If I'm learning a language (as opposed to working on a project with others), I find I seldom need all the bells and whistles an IDE provides.
t ml
I know of two text editors that provide excellent Python integration.
* BBEdit: http://www.barebones.com/products/bbedit/index.sh
* Vim: http://macvim.org/OSX/index.php
I like Vim better for two reasons. First, it is slightly cheaper; and secondly it has the words Don't Panic inscribed
in large friendly letters on its cover.
My father is a blogger.
I've been writing python code on mac os x for over two years now, and all I ever needed was the emacs port for OS X. The CPython mode for emacs does sensible syntax highlighting, indentation etc.
I know it's not open source, but Active State's KOMODO has a mac version now. The personal edition is pretty cheap.
I just use VIM, but I wouldn't consider it an IDE.
you can download and IDE(PythonIDE) and extras from MacPython
i'm in the same boat, i just got a powerbook for christmas and i downloaded the stuff last night, wanting to learn some python.
i had trouble with the install, all the latest stuff is for 10.3 and i've got 10.4. the wiki FAQ can get you up and going. also has a package manager and you can download PyObjC, which is a "bridge" (wrapper class?) so you can code in python and use cocoa elements. just getting my mac a week ago, i don't actually know what much of the above means, but thats where i'm heading.
i don't care
The reason little Objective-C is used outside of the Apple/Cocoa world is that it isn't standardized. In order to make the most of it, you need to develop with some framework. Your main choices are either Cocoa or Openstep. That said, Cocoa is Mac only (for now... I have my eye on the upcoming expo) and Openstep is lagging behind in many areas.
That said, you don't need either of them to use Objective-C. GCC comes with a standard "Object" that everything else can inherit from. The problem is that, while you get all of Objective-C, you get none of the lovely frameworks; You're stuck with the standard C library. Depending on what you're doing, this may or may not be a problem.
I personally think Objective-C is a fine choice for cross-platform development sans-frameworks IF:
1. You'd be comfortable doing it with C
2. You're doing largely lower level work or non GUI-work (in which case you'd need to use Openstep)
3. You *like* C, but wouldn't mind getting some objects to go along with it.
4. You're willing to accept a performance hit for message sends versus function calls (minor though, about 1.7x).
5. You'd like to take advantage of some of Obj-C's special features that GCC provides (dynamic module loading, etc)
The problem isn't that Objective-C is a "bad" language. It is rather good actually. The problem is that either you're using Openstep for crossplatform development, which, while I *have not done*, I hear is rough, or you're going in with only the standard C library. If you think of Objective-C as some simple additions to C to make your programming easier, more maintainable, and more enjoyable, then it can be a very useful tool. Just don't expect anything else from it unless you're on the Mac platform or are willing to deal with Openstep.
In summary, Objective-C sans-frameworks can serve as a good replacement for C in a lot of cases where performance is important but not critical, and as a replacement for C++ in some cases (C++ comes with so much more than Objective-C out of the box).
I have been using ActiveState's Komodo Professional on Windows since 2002, primarily for Perl development. It has good Python support, and the OS X version works great as well. See its Python features here: http://www.activestate.com/Products/Komodo/feature s/python.plex It also supports PHP, Ruby, Tcl, and XSLT, as well as color formatting for other languages. They license developers, rather than machines, so I have legally installed a copy on my PowerBook for work at home, and it's been great. You also mention that you like working on Linux, and you'll be happy to know that they support it as an OS as well. Some interesting features are it's integrated debugger, autocomplete, and the interactive shell. There is a 21-day free trial, and the personal license is only $30.
The weird part is that I can feel productive even when I'm doomed.
I think that you may want to take a look at Eclipse and download the python plug in. I have really enjoyed using Eclipse and the python plugin is pretty darn good. Plus you are only a step or two away from giving jython a test drive. I am running this on a Mac PB with no problems.
My
>all my work computers are Mac's.
Ask you boss to get you your own computer and stop using Mac's.
I don't know the meaning of the word 'don't' - J
If you want a cross-platform GUI library for Python you should consider PyQT which would allow you to run your python gui programs acrosss multiple platforms. QT licensing is not to everyone's taste as it seems to force you to either be totally GPL or buy a full commercial license.
Not really an IDE but more of an editor, but the following TextMate screencast might be of interest:
http://macromates.com/screencast/python_part_1.moit's a screencast of TextMate in which a Python developer shows some nice tricks of the editor.
For more screencasts featuring other languages, see the screencast page of TextMate: http://macromates.com/blog/archives/2005/12/16/scr eencast/
I dislike TextMate.
1. The undo functionality is crippled. Undo "undoes" one character at a time. This stops me from working the way I like to, which often involves adding a few lines, testing the code, and hitting undo if it didn't work out.
Er... well that's it actually. What is up with that undo functionality?
Someone please correct me if I am doing something wrong here. Maybe I am.
Ah well, back to TextWrangler.
WingIDE is used extensively for most large commercial and otherwise software projects. Most of the developers at OSAfoundation.org use it.
Also, as a free alternative try winpdb:
http://www.digitalpeers.com/pythondebugger/
Its the most advanced python debugger i've used, but its not an IDE. I use WingIDE PRO for now, but anything that requires advanced debugging I switch to winpdb.
I'm about to shell out the $45 for it. Regular expressions for defining your own custom syntax and tabbed file viewing and scripting galore. I don't use the snippets so much yet, but that's a favorite feature among most of my friends.... basically lets you pated a block of code and tab through the fields within that snippet to edit them.
I'm using this for developing a webapp in VB.Net (yeah, I shivered when I got the project too, but I'm pleasantly surprised how much better it is than VB6) over a samba mount and it's fantastic. Had to create my own syntax coloring though *shrug*. Python support is built in however.
I love it. Expose` between the tabbed windows of both TextMate and Safari. It's extremely productive for me.
ActiveState's newest version came out for OSX first and supports ruby and RoR as well as the languages it has historically supported (python, php, tcl, ...)
I also use emacs to write python on the mac, although I use emacs connected to X11. The initial reason was that you can tell X11 to pass all keyboard commands to the program, so that you can use the Apple/Command key as emacs's Meta key. You get the benefit of having the option to run the same version of emacs w/X11 or in the terminal (handy if you want to use your regular editor should you ever SSH into your own box remotely). The newer versions of emacs support various levels of integration with the python interpreter, CVS, and subversion, and more--if you're really looking for "IDE"-mentality, but I mostly use it as an editor. I'll let others elaborate on that functionality.
Just install Apple's X11 and developer tools, then either use fink to install an old stable version ("emacs" 21.2), or darwin ports to install a cutting-edge version ("emacs-devel", recent CVS snap [pre-release of 22]).
Other good editors I've seen [don't know about IDE's per-se] are subethaedit [free for noncommercial], bbedit [not free], and vim.
If you want Emacs for OS X you should check out Aquamacs. It has some good integration with OS X that can make your life easier.
For example it supports standard OS X keyboard shortcuts (in addition to standard Emacs bindings) and easily assign shortcuts to the iBook / PowerBook Fn key combos. You can access the OS X dictionary from the context menu, and use the services menu... etc. etc.
The parent points at another emacs port that looks pretty stale (it is talking about 10.2 & 10.3).
.. like all the other Python coders on the Mac. While you're at it, check out PyObC. It gives you full access to all of Apple's Obj-C frameworks from Python.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
Eclipse is crap for python. Now you know.
"Piter, too, is dead."
Leo, the Literate Editor with Outlines, kicks ass once you learn to use it.
It creates self-documenting code through its use of outlining. The use of outlining automagically encapsulates complex algorithms and ideas. One ends up with this bitchin' combination of structural/algorithmical/conceptual outline nodes and actual code.
I so very much wish that IDEs would start using LEO techniques. It would truly provide the best of all worlds.
--
Don't like it? Respond with words, not karma.
I've tried lots of different development systems for Python. I'm currently sold on Emacs being the best. For C++/Java/C# the computer has the typing information to help with the development process, so IDE's for those languages/platforms can help quite a bit. But IDE's can't help nearly as much with Python.
I've used Wing IDE quite a bit and it is pretty good. It does help organize projects and can do some code completion (but not nearly as good as IDEs for Java et al). It would be my recommendation for anyone who needs a transition tool.
I've played with Leo a little bit, but not enough to make any serious recommendation. But the philosophy is really sound. It really does the trick for organization. If it had a better text editor, I would give it more serious consideration.
I've always been a Vim fan. Nothing can beat it for editing text, but I think its Python mode is less than stellar. I prefer my tabs converted to spaces, but the python mode doesn't understand it enough to handle backspaces properly.
Emacs with python mode is really doing it for me. The real kicker is having the interpreter and the editing buffer in the same window. Being able to switch back and forth and make changes and test them in a live environment is a whole new world. That instant feedback leads to a more iterative development process that makes coding more fun and, in my experience, just plain better. Not to mention that is available on every platform and very responsive. Highly recommended.
1) How do you use the shell to change a method name on a type and all subclasses, along with all invocations of that method on objects of those types? I can do this across a 100,000 LOC code base in a couple of seconds, and in making this kinds of changes regularly for a couple of years now, Eclipse has never screwed up this kind of refactoring.
2) How does your shell ide find all references to a given method? Eclipse uses a full-text search engine (Lucene) and searches against a compiled index, and it answers such questions in a second or two. Your grep solution will be much slower (you're doing brute-force text search vs something closer to a hashtable lookup), will take you a long time to develop (you can't just grep for the method name, because you have to check the type of the object too), and will probably be wrong and incomplete.
And there are tons of other features of a good ide that I could ask about. I would suspect you are a troll, but I hear this kind of thing so often that I think you're probably just oblivious to the features a good IDE provides, or never having used one for a while on a large project, are oblivious to how useful and frequently used features such as I outlined above really are.
I use vim a lot still for text editor tasks, and I still use emacs for lisp stuff, but I would never go back to doing Java in Emacs/JDT. For the languages that don't yet have good IDEs, you may have a point, as what people are calling IDEs are really just text editors.