views:

167

answers:

3

Hi,

I'm relatively new to Python, but feel like I'm getting a good feel for it. I was wondering what would be some well documented open source projects in Python for beginners.

Sorry if this question is a repeat. I found a few good links mentioned in other threads, but I'm looking for open source projects only in Python (I've heard Twisted is a good one, but I found it to be too complicated)

Thanks!

+1  A: 

PyPI has a ton of projects listed.

What you choose depends on your goals. Projects are indexed based on several axes. For example, you could search for projects tagged "Production/Stable" to see mature code.

Or you could look for something in a category that interests you.

bstpierre
What some people consider "Production/Stable" doesn't have to be remotely stable, mature or production ready nor does it mean it is well documented and designed. A good example for this is the python standard library which should never be taken as a guide for good design or style when it comes to python applications or libraries.
DasIch
@DasIch - True, but at least you get a feel for what the *author* of the package considers its state to be. I used the production/stable tag more as an example of how to search the index, not so much as a link to a list of desirable packages. As far as the standard library goes, yes there is some ugly/legacy code in there, but many of the modules I've looked at are relatively well documented code.
bstpierre
+1  A: 

It depends on what you want to do with Python.

For web development, many swear by Django. I haven't used it extensively, but I know that the documentation on the site is good and there are a number of books that cover the topic extensively (e.g. Professional Python Frameworks). Also, I've heard good things here and there about CherryPy, Turbogears, and Pylons as well, you can look at those to see if they suit you.

For GUI development, there's a bit of debate. There are several books out there for PyQt, and there's a loyal following for PyGTK as well. I personally use Tkinter, but I find the documentation for Tkinter is good for basic stuff, but is certainly not comprehensive or up-to-date.

For internet programming (not web applications, but more along the lines of protocols--FTP, email, etc.), the Python library reference (note: this is a link to the 2.7 docs) provides you with most of what you need to know to get started.

For anything else, there's pretty much everything you'd want in the Python library.

Rafe Kettler
+3  A: 

Pocoo projects (mainly Flask, Werkzeug, Flask and of course Sphinx) are somewhat well documented, and maintained by very competent developers. These projects might be worth a quick look, their source code won't teach you bad style, and can certainly serve as some kind of reference for good and well-documented python code.

lunaryorn
I'm not sure how other projects handle this but if you look at this thread http://flask.pocoo.org/mailinglist/archive/2010/9/28/could-anyone-explain-this-line/ you will see that you can also ask questions about the code and get help, which is definitely a plus. You can also just ask questions in the IRC channel #pocoo on freenode. However I should add that as a member of the Pocoo Team I'm a bit biased in the matter.
DasIch