Slashdot Mirror


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."

34 of 113 comments (clear)

  1. Have you seen... by WTBF · · Score: 5, Informative

    ...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).

    1. Re:Have you seen... by Directrix1 · · Score: 5, Interesting

      I'll just save everybody the hassle of going there: SPE - Stani's Python Editor. IMHO, this is by far the best open source free python editor. It blew me away. It is even nice for designing GUIs since it comes with wxGlade. Although, it does still have a few quirks, it is very usable.

      --
      Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  2. similar situation by gimpimp · · Score: 5, Insightful

    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
    1. Re:similar situation by mbadolato · · Score: 2, Interesting

      I've used (very little though) the OS X version of Komodo for some Perl stuff, and it seems very nice. One of these days I'll install it again and give it a really good test. I believe it does Perl, Python, and Ruby as part of the core, and has all the major IDE functions.

      On OS X, TextMate is really coming along nicely, but it's not an IDE; just an editor. That's the editor used in the 15 minute Ruby-On-Rails demo video, for those who have seen it.

  3. Objective C by fozzmeister · · Score: 5, Funny

    Aparently Objective C is perfect and all you need

  4. Text Editors... by Big+Sean+O · · Score: 5, Interesting

    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.

    I know of two text editors that provide excellent Python integration.

    * BBEdit: http://www.barebones.com/products/bbedit/index.sht ml
    * 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.
    1. Re:Text Editors... by Fahrenheit+450 · · Score: 3, Interesting

      Meh. BBEdit is grossly overpriced, even with their dumbass "crossgrade" from TextWrangler. Vim, TextEdit, emacs, and smultron are each far better editors at far better prices. And SubEthaEdit is pretty decent with an unbeatable price as well.

      The folk over at BareBones have been cruising on reputation far too long with their substandard products...

      --
      -30-
    2. Re:Text Editors... by prichardson · · Score: 3, Interesting

      I'm a huge fan of SubEthaEdit.

      It's free for personal use and available at http://www.codingmonkeys.de/subethaedit/

      The collaborative text editing feature is cool, but I never really found a use for it.

      --
      Help I'm a rock.
  5. emacs by AOL-CD-Man · · Score: 3, Informative

    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.

  6. KOMODO? by rakanishu · · Score: 3, Interesting

    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.

  7. MacPython by Tachikoma · · Score: 4, Interesting

    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
  8. the truth about objective-c by John+Nowak · · Score: 4, Informative

    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).

    1. Re:the truth about objective-c by jcr · · Score: 2, Informative

      The reason little Objective-C is used outside of the Apple/Cocoa world is that it isn't standardized.

      I wouldn't agree that that's a factor at all. Obj-C is available everywhere that GCC is. The reason that most Obj-C coders are using Cocoa, is that they learned Obj-C because of Cocoa (or NeXTSTEP).

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    2. Re:the truth about objective-c by swillden · · Score: 2, Interesting

      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.

      Actually, it's not quite that bad, because you also have all of the available C++ libraries.

      Because the C++ and Objective-C extensions to C are orthogonal, you can actually write Objective-C++. This means you can use Objective-C for the core of your application and use C and C++, as appropriate, to do UI stuff, interface with peripherals, etc.

      I did this years ago, actually, although I partitioned my code a little differently, because I like C++ and its strong compile-time typechecking. So I wrote applications in C++, but wrote some key components in Objective-C. Objective-C's late binding model is great for those scenarios where you want extreme flexibility.

      The downside of this approach, of course, is that you -- and everyone who will have to maintain the code after you -- must know *both* Objective-C and C++. Syntactically, this would appear to be no problem for a competent C++ programmer, since you can literally learn all of Objective-C's syntax in a few minutes. There's just not that much of it. In practice, the classes-as-object-factory-objects, purely-late-binding, type-defined-by-interface approach of Objective-C requires thinking about objects in a different, very Smalltalkish way, so many C++ programmers do, in fact, have a tough time understanding it at first.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    3. Re:the truth about objective-c by JulesLt · · Score: 2, Insightful

      The thing I like about it is that, as commented, if you know 'C', you can learn the syntax in minutes. Compared to C++ it has a lot of elegance, which is attractive to some programmers.

      That said, most of what you need to take advantage of most languages these days are the standard packages and frameworks, rather than the syntax. I guess that's another debate altogether - simple languages with large standard libraries vs complex languages.

      --
      'Capitalists of the world, unite! Oh ... you have' (League Against Tedium)
  9. Komodo on OS X is a solid choice by gerbercj · · Score: 3, Informative

    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.
    1. Re:Komodo on OS X is a solid choice by neelm · · Score: 3, Interesting

      Another nice thing about the license is that it is good for windows, mac, and linux versions per developer - so if you work on multiple platforms you can have the same IDE on all. If you need cross platform support, Komodo and Eclipse would be the two to consider, imho.

  10. Eclipse w/Plugin by bblazer · · Score: 3, Interesting

    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 .bashrc can beat up your .bashrc!
    1. Re:Eclipse w/Plugin by ultrabot · · Score: 4, Informative

      Incidentally, the Eclipse plugin is called PyDev.

      It seriously rocks, all the Eclipse goodness + code completion for Python. I tend to prefer it to other Python IDE's these days, esp. now that Eclipse 3.1 is not a slow dog anymore.

      --
      Save your wrists today - switch to Dvorak
  11. I understand your problem by Progman3K · · Score: 3, Funny

    >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
    1. Re:I understand your problem by timster · · Score: 2

      I thought it was funny, but I think nobody else got it.

      --
      I have seen the future, and it is inconvenient.
  12. PyQT bindings by speculatrix · · Score: 2, Informative
    Not the answer to your quest for an IDE, but...

    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.

  13. TextMate Screencast featuring Python by zhenga · · Score: 3, Informative

    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.mov

    it'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/

  14. Re:TextMate. by John+Nowak · · Score: 3, Interesting

    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.

  15. The Best of the Best Sir! by Anonymous Coward · · Score: 2, Interesting

    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.

  16. I second the nomination for textmate by sevinkey · · Score: 2, Informative

    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.

  17. check out Komodo by jbellis · · Score: 2, Informative

    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, ...)

  18. I also use emacs for python..but a bit differently by Zaurus · · Score: 2, Informative

    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.

  19. Check out Aquamacs by AnEmbodiedMind · · Score: 2, Informative
    I've tried a few different Emacs ports on OS X.

    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).

  20. Just use Xcode by jcr · · Score: 4, Informative

    .. 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."
  21. Re:Eclipse by chris_mahan · · Score: 2, Funny

    Eclipse is crap for python. Now you know.

    --

    "Piter, too, is dead."

  22. Not an IDE, but a LEO by FFFish · · Score: 3, Interesting

    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.
  23. IDE's don't help much with Python by slevin · · Score: 5, Informative

    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.

  24. Re:The Unix Programming Environment ... by jnana · · Score: 2, Insightful
    That's pretty funny.

    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.