Best IDE for Django and python?

1,156 views
Skip to first unread message

DragonSlayre

unread,
Nov 25, 2008, 3:27:09 AM11/25/08
to Django users
Hey, I'm getting started with a friend in developing a site with
Django, and we're both new to this, so I am wondering what people use
to manage all their files, and for looking at documentation etc.

Having come from a Java background, I'm used to great documentation,
and suspect that Java is very much the leader in doc, and not the
standard.

I've used the pydev plugin for eclipse, but it seems extremely
limited.

How do you develop your django projects, and where do you go when you
need to find documentation?

Kenneth Gonsalves

unread,
Nov 25, 2008, 3:42:58 AM11/25/08
to django...@googlegroups.com
On Tuesday 25 November 2008 01:57:09 pm DragonSlayre wrote:
> How do you develop your django projects, and where do you go when you
> need to find documentation?

why do you not check the archives of this list? You are the 10,000th person to
ask this same idiotic question

--
regards
KG
http://lawgon.livejournal.com

DragonSlayre

unread,
Nov 25, 2008, 3:46:42 AM11/25/08
to Django users
Well maybe the problem is that the answer is not obvious

Russell Keith-Magee

unread,
Nov 25, 2008, 5:07:28 AM11/25/08
to django...@googlegroups.com
On Tue, Nov 25, 2008 at 5:42 PM, Kenneth Gonsalves
<law...@thenilgiris.com> wrote:
>
> On Tuesday 25 November 2008 01:57:09 pm DragonSlayre wrote:
>> How do you develop your django projects, and where do you go when you
>> need to find documentation?
>
> why do you not check the archives of this list? You are the 10,000th person to
> ask this same idiotic question

Kenneth - that kind of attitiude doesn't help anyone, and doesn't make
the Django community look good. Let's keep the personal epithets under
control.

Yours,
Russ Magee %-)

Ramdas S

unread,
Nov 25, 2008, 5:39:13 AM11/25/08
to django...@googlegroups.com
Agreed!

I see the same kind of arrogance in some of the posts and even more these days on IRC.

I completely agree that some of us do ask questions, and sometimes without properly checking the available docs, archives of discussion and other known sources.It gets irritating as you see teh same question being asked again! However, there can be a better way of addressing such frustration. Just because you send a stinker to a newbie, another newbie won't repeat the question.

I had recently heard on an alternate IRC chatgroup of another popular Python project, where a number of newbies felt that some of the more knowledgeable and experienced django users have been quite curt and even offending when elementary questions are asked of django or even about Python. This was not the case when I first joined in thsi group as a newbie.

We need to remember that every community will consist of developers and users, who have varied backgrounds and knowledge levels and the user group/IRC belongs as much as,  to a completely new user as much as to the guys, who wrote all the code that makes this project wonderful!

 
Thanks

Ramdas

Horst Gutmann

unread,
Nov 25, 2008, 5:52:18 AM11/25/08
to django...@googlegroups.com
OK, back to the topic at hand :-)

While I personally don't use any IDE for developing in Python (I'm
more the editor+cli kind of guy), the big Java-based IDEs are more and
more opening up to other languages. For example Netbeans has now an
early-access program for Python support [1] in their IDE.

Regarding code management, as I said, I rely mostly on command-line
clients of Git [2] and Mercurial [3].

In the documentation department Django's source tarball comes with
everything you actually need to know about it. Just install Sphinx
[4], go to the docs/ folder and run `make html` to convert the whole
documentation of Django into easily readable (and thanks to JavaScript
also searchable) HTML pages :-) In fact IMO documentation support in
Python is even more integrated into the language environment than it
is with Java since you can access a module's, class' or function's
documentation right from the commandline with the `pydoc` command
instead of first having to build it using javadoc (just my 2c).

For your own project documentation, you should probably take a very
close look at the Sphinx project [4] mentioned above. It's slowly
become the favorite documentation tool of the Python community. If
you've got so used to javadoc that you can't live without that style
of documentation-output, take a look at epydoc [5]

-- Horst

[1] http://wiki.netbeans.org/Python
[2] http://git.or.cz/
[3] http://www.selenic.com/mercurial
[4] http://sphinx.pocoo.org/
[5] http://epydoc.sourceforge.net/

Russell Keith-Magee

unread,
Nov 25, 2008, 5:59:20 AM11/25/08
to django...@googlegroups.com
On Tue, Nov 25, 2008 at 5:27 PM, DragonSlayre <LSSa...@gmail.com> wrote:
>
> Hey, I'm getting started with a friend in developing a site with
> Django, and we're both new to this, so I am wondering what people use
> to manage all their files, and for looking at documentation etc.

While I must apologize for Kenneth's poorly expressed frustration, his
underlying message is sound - this has come up _many_ times on
Django-users. A quick Google search should return many options, but
there is no clear or correct answer to your question.

> Having come from a Java background, I'm used to great documentation,
> and suspect that Java is very much the leader in doc, and not the
> standard.

Having spent the afternoon wrestling with J2EE, I'd strongly disagree
with this assertion. I will agree that Java projects tend to have have
very extensive API documentation. This is a result of the combination
of Javadoc and strong IDE integration that supports Javadoc. However,
the quality of that documentation is highly variable. Unfortunately,
the fact that Java IDEs automatically write Javadoc stubs and provide
1 button "build the documentation" hooks gives developers the mistaken
impression that a project is "well documented". Documentation for the
method "get_username()" that reads "Returns the username" doesn't
really illuminate anything.

There is also the argument that good APIs don't require lots of API
documentation - after all, it should be obvious what get_username()
returns. If your API entry points require extensive explanations,
perhaps you need a better API.

Good documentation means more than an API (and a _lot_ more than an
empty autogenerated stub). Documentation means good explanations of
the big picture - how the pieces fit together, how to achieve
important tasks, significant internal states, etc. This sort of
documentation doesn't fit well into simple API docs. It is also very
hard to write, and as a result, it often isn't written, and when it
is, it is rarely written well. This isn't unique to Java, either - the
vast majority of open source projects suffer from this affliction.

I'd like to think that Django is on the better end of the spectrum
when it comes to documentation - we are blessed to have a journalism
major amongst our project founders, and a couple of other liberal arts
majors amongst the frequent contributors. As a result,
docs.djangoproject.com is a pretty thorough resource, and is generally
well written. This documentation is by no means perfect, but it is
certainly better than a lot of other projects out there.

In addition to the official documentation, there is a wealth of
contributions on django-users and in the blogging community around
Django that provides excellent material to supplement the official
docs. Again, Google is your friend, and Django is a pretty specific
Google keyword :-)

> I've used the pydev plugin for eclipse, but it seems extremely
> limited.

I've used PyDev too, and I'd agree with your assessment. However,
others seem to like it. YMMV.

> How do you develop your django projects, and where do you go when you
> need to find documentation?

Your original query actually reveals a bias that is significant - why
do you want an IDE in particular?

Java, as a semi-traditional compiled language, lends itself to IDE
development. The write-compile-run cycle places a certain imperative
on getting code right the first time. Admittedly, the incremental
compilation features of modern Java IDEs make this less of an issue,
but the general language culture leans towards tools and development
techniques that support this general philosophy.

However, dynamic languages tend not to leverage IDEs as much. A lot of
Python developers (and developers in other dynamic languages) tend to
develop using relatively lightweight text editors. Some of these
editors provide code highlighting, code completion, and other IDE-like
features, but they definitely don't go as far as a traditional IDE.

There are at least two reasons for this. Firstly, dynamic languages
don't require a write-compile-run cycle, so they lend themselves to
much greater experimentation. Want to know if an idea will work? Fire
up an interactive Python shell and test out your idea. Editors can
help you maintain scratchpads to develop a complex test harnesses; the
Python runtime environment provides the ability to dynamically reload
code modules during runtime. IDEs are very good when you're dealing
with managing a body of code that is 'published' into a compiled
product; I'm yet to see an IDE that can deal elegantly with the
capabilities of a dynamic language.

Secondly, there is the long standing "unix vs windows" philosophical
argument. The Windows world (which, for all the Sun heritage, Java
really is a part of) tends to push monolithic tools that do
everything. The unix world, on the other hand, tends to push lots of
little tools, each of which does one thing well. Want something to
edit text? Get a good text editor. Want something to manage files? Get
a good file manager. Want something to manage integration with version
control? Get a good version control system. A complete development
environment consists of lots of little tools, each of which does a
specific job well.

However, that said, if you really do want to use an IDE, there are a
number of IDEs for Python out there, both free and commercial, and
some of them explicitly provide varying degrees of support for Django.
Again, Google is your friend.

I hope this provides some illumination. All the best in your search
for the perfect development tools, and best of luck with your Django
project.

Yours,
Russ Magee %-)

Keyton Weissinger

unread,
Nov 25, 2008, 6:23:23 AM11/25/08
to Django users
It's unlikely I will be able to add much after Russ, but I will
suggest a book that has helped me a GREAT deal in support of the IDE-
approach:

Foundations of Agile Python Development:
http://www.amazon.com/Foundations-Python-Development-Experts-Source/dp/1590599810

It goes step-by-step over subversion and eclipse and pydev. It covers
windows and linux though the author uses linux. I was able to use
everything on Windows just fine but I HAVE migrated to linux since
then (painful but possible)...

Good luck and while I'm not much less new than you, I can say with
sincerity, WELCOME!

Keyton

On Nov 25, 5:59 am, "Russell Keith-Magee" <freakboy3...@gmail.com>
wrote:

bobhaugen

unread,
Nov 25, 2008, 6:55:20 AM11/25/08
to Django users
On Nov 25, 4:59 am, "Russell Keith-Magee" <freakboy3...@gmail.com>
wrote:
> I'm yet to see an IDE that can deal elegantly with the
> capabilities of a dynamic language.

This is really not relevant to the original question, but if you say
that, you've never used Smalltalk or Lisp.

The Smalltalk environment is where the Eclipse IDE originated, and
then it was dumbed down significantly for Java. In Smalltalk, you
could dynamically change anything in the environment, as well as
change code on the fly in the debugger. It was (and still is)
awesomely fluid.

Unfortunately, the Smalltalk community never really grokked the Web,
or you could now be using a dynamic Web-based development environment
for Django.

Nikolay Panov

unread,
Nov 25, 2008, 7:27:33 AM11/25/08
to django...@googlegroups.com
I'm using just gvim + some plugins (help.vim, autocomplpop.vim,
snippetsEmu.vim, ...). As for me, this is quite enough.

Have a nice day,
Nikolay.

Abdel Bolanos Martinez

unread,
Nov 25, 2008, 8:11:46 AM11/25/08
to django...@googlegroups.com
I think pydev + eclipse + aptana is the best choice, just configure correctly python PATH in pydev so the autocomplete works fine, debug your code with the extra option runserver 8080 --noreload works fine too, create external tools django commands, improve your pages with aptana, use firefox as your web-browser with addons FIREBUG installed (debug JavaScript, inspect HTML code, net speed).
I used to work with Java but Python is relly good.


Abdel Bolaños Martínez
Ing. Infórmatico
Telf. 266-8562
5to piso, oficina 526, Edificio Beijing, Miramar Trade Center. ETECSA

Ovnicraft

unread,
Nov 25, 2008, 10:29:21 AM11/25/08
to django...@googlegroups.com


2008/11/25 Russell Keith-Magee <freakb...@gmail.com>


I am agree with Russ, you must combinate several tools to have a good environment, so if you want to have all in one try NBPython[1] and browser side use firefox addons there are several tools. (firebug, javascript debugger, web development toolbar)
About doc remember that community is your best friend, http://docs.djangoproject.com is great to start, and IRC channel... always, all your question can be solved in both, dont afraid to ask us, and your're welcome to Django.

Best regards,


[1] http://download.netbeans.org/netbeans/6.5/python/ea/

--
[b]question = (to) ? be : !be; .[/b]

Kurczak

unread,
Nov 25, 2008, 1:43:54 PM11/25/08
to Django users
I wonder why no one mentioned Komodo IDE or Komodo Edit.
They're my personal favorites for bigger projects. Both are well
suited for dynamic languages and really lightweight compared to
Bloatclipse with pydev (or aptana).

Antoni Aloy

unread,
Nov 25, 2008, 1:56:16 PM11/25/08
to django...@googlegroups.com
2008/11/25 Kurczak <kur...@gmail.com>:

I have tested Komodo Edit and personally I like best vim + extensions,
Eric4, Eclipse + pyDev or actually Netbeans.
I you haven't tested yet give Netbeans a look. In my opinion this is
the way to go on Python development.

Eclipse+pyDev and Eric4 actually have more Python options, specially
on refactoring, but Netbeans interface is much clearer and the
combination of auto completion and documentation is really good. I
also like very much the svn diff tool with syntax highlight.

Eclipse and Eric4 have a more svn interface. From Netbeans I don't
like that the auto completion shows all the packages that are in the
project even if they aren't related to it, and that it shows the pyc.
But I have been testing it during the last days and even with this
lacks it's one of the best IDEs.

bedros

unread,
Nov 25, 2008, 2:26:39 PM11/25/08
to Django users
I personally like Komodo Edit

after trying komodo, I switched from pydev and eclipse to komodo;









On Nov 25, 10:56 am, "Antoni Aloy" <antoni.a...@gmail.com> wrote:
> 2008/11/25 Kurczak <kurc...@gmail.com>:

Chagel

unread,
Nov 26, 2008, 10:10:36 AM11/26/08
to Django users
anyone know when NB has Django project support?
> > lacks it's one of the best IDEs.- Hide quoted text -
>
> - Show quoted text -

Austin Gabel

unread,
Nov 26, 2008, 10:20:20 AM11/26/08
to django...@googlegroups.com
I have been using WingIDE from www.wingware.com.  I think it's pretty good.

Steve Phillips

unread,
Nov 26, 2008, 10:20:59 AM11/26/08
to django...@googlegroups.com
I personally use Komodo Edit along with IDLE.  Also instead of using "manage.py shell" I use IDLE.  I am so spoiled by the autocompletions.

Andre Meyer

unread,
Nov 26, 2008, 10:28:23 AM11/26/08
to django...@googlegroups.com
On Wed, Nov 26, 2008 at 4:20 PM, Steve Phillips <stev...@gmail.com> wrote:
I personally use Komodo Edit along with IDLE.  Also instead of using "manage.py shell" I use IDLE.  I am so spoiled by the autocompletions.

I am also using Komodo IDE and like it a lot.

You may also want to check out django-komodo-kit: http://code.google.com/p/django-komodo-kit/

cheers
apm

Horst Gutmann

unread,
Nov 26, 2008, 10:28:32 AM11/26/08
to django...@googlegroups.com
Well, if you install ipython, you also get auto completion with
manage.py shell :-)

-- Horst

On Wed, Nov 26, 2008 at 4:20 PM, Steve Phillips <stev...@gmail.com> wrote:

vivek

unread,
Nov 26, 2008, 11:50:06 AM11/26/08
to Django users
I also use komodo ide :
- It can be used with other dynamic languages like php, so if you
sometimes need to do something in languages other than python, it can
come in handy.
- They have excellent licensing policy

but i doubt there is any "best" ide to everyone's need. Most of
choices suggested here are either free or free to try, so you can try
them first.

> How do you develop your django projects, and where do you go when you
> need to find documentation?

now for your second question:

http://docs.djangoproject.com/
http://www.djangobook.com/

both are excellent resources for django documentation.

Ivan Mincik

unread,
Nov 26, 2008, 6:48:15 PM11/26/08
to django...@googlegroups.com
Komodo Edit 5 couldn't run at Debian Etch. Has anybody some older version ? (4)
Ivan
--
Mgr. Ivan Minčík
Gista s.r.o
tel:. 0907 639 570
email: ivan....@gista.sk
http://www.gista.sk, http://demo.gisplan.sk
Reply all
Reply to author
Forward
0 new messages