Wanted: A Python IDE

I’ve been working on a mixed language Python-Java project lately. Increasingly I find myself needing to trace into the Python code, and I miss the features of Eclipse when doing so. (Yes, I’ve installed PyDev. No, it isn’t very good.) Are there any IDEs out there that let me do more than syntax color the Python? Since my primary interest is in exploring other people’s code, what I’m really looking for are the browsing features of Eclipse’s Java support. In particular I’d like to be able to click a method name or variable and find out where that is declared. I’d also like to be able to click a definition of a function or class and get a list of references to that item in the project.

This functionality is easily available in Java, and it’s very helpful. Can anything out there in Python-land do this, or is this a place where a dynamically typed language isn’t so helpful? (How would you even know at compile-time which class will be bound to a variable?) I do notice that the Python folks I’m working with eschew IDEs in favor of emacs themselves. Is this the S.O.P for Pythonistas? or for that matter for all dynamically typed languages?

6 Responses to “Wanted: A Python IDE”

  1. Bill Goggin Says:

    Try ActiveState’s Komodo.

  2. Jochen Bedersdorfer Says:

    I think you touched an important point here. Dynamically typed language will be the help of a running interpreter to determine the exact type and thus guide you to the correct source file. This might still be feasible in smaller projects but may be problematic on big industrial projects with loads of dependencies, sub-projects, integration libs etc. etc. You basically need to have all the source available and sourced all the time in a running interpreter. Or am I wrong?
    There might be some shortcuts that work with a static analysis, like certain call traces, though.

    Still I find these navigational features of Eclipse and the static nature of Java to be most crucial points for enterprise development.

  3. Viswanath Says:

    I thought you are switching to Netbeans, so finding a mention of eclipse is a bit surprising for me.
    I don’t code in python, but I see atleast 4 or 5 IDEs under Linux/Ubuntu.

  4. Jason R Briggs Says:

    Wasn’t particularly impressed by Komodo, myself.

    Netbeans had the coyote plugin for Netbeans 5, but despite the additional scripting lang support in NB6, Python is conspicuous by its absence.

    I’ve basically found myself back in Jedit for Python development, and switching back to Netbeans for Java.

  5. Carl Bowken Says:

    ‘Wing IDE Professional’ is quite a powerful IDE for python:
    http://www.wingware.com/wingide/index

    ‘Pydev Extensions’ has more features than the free open source version:
    http://www.fabioz.com/pydev/about.html

  6. Yuriy G Says:

    I’ve been using WingIDE. It has a very good, intuitive editor and python debugger wrapper. For me, the only negative thing about it uses PyGTK libraries for the GUI and the response times are pretty slow, ala Swing in the good old days.

    However, my coworker/python-enthusiast has recently switched to the emacs set up that you’ve mentioned. From what he showed me, it look as convenient, if not more.

Leave a Reply