I thought I would start a Python Resources thread for those of us trying to learn the language. Here are some resources I have found so far:
If you know of other helpful sites, please post them.
EDIT: added Dec 25, 2010
the Python docs: http://docs.python.org/
List of Python web frameworks from python.org: http://wiki.python.org/moin/WebFrameworks
WSGI: http://www.wsgi.org/wsgi/ (instead of CGI)
beginners python tut (recommended in the orca mailing list): http://sthurlow.com/python/
help at pythonforum: http://python-forum.org/pythonforum/index.php mentioned by 7stud
routes url mapping for pylons and cherrypy (supposedly also other frameworks too) http://routes.groovie.org/manual.html
Zed Shaw's written a book... about learning programming, but using Python specifically. http://learnpythonthehardway.org/index
Book is for sale but also available FREE online either way.
Thinking in Python, Bruce Eckel is often considered a good book, and it is a free download. http://www.mindview.net/Books/TIPython. It isn't a begginers book though, but after reading some of the pre-mentioned resources above, this may be a good book to tackle.
I don't have to much experience with Python, but it is looking more attractive day-by-day. One thing though I don't like about it is it's documentation: but I have been spoilt by the PHP manual in the past.
I'll add a few more:
http://pythoncard.sourceforge.net/ (Python 2)
Libraries (third party)
Boost.Python (framework to interface Python and C++)
[Using the time module from [URL="http://effbot.org/librarybook/"]The Standard Python Library](http://effbot.org/librarybook/time.htm) (Python 2)
Python Style Guide
I noticed someone mentioned wxPython further up in this thread, as far as GUI programming goes I would suggest using PyQt, which is the Qt widget library made by Trolltech wrapped to Python.
PyQt is identical to Qt, which means you can read the documentation supplied by trolltech in order to solve your problems. It also enables you to use such tools as Designer for laying out your GUI.
An for those who are wondering why to program in python, here is Eric Raymond's article: http://www.linuxjournal.com/article/3882
I've been playing with the Django framework for a couple of days and it looks good, although it contains some bugs and currently the ORM only supports postgreesql, mysql and sqlite. But support is on it's way for other databases (they currently work on Oracle support).
Though it cannot be used for production yet (it's been in production for 2 years but it's been released as open source in July, so it can be considered as new), it looks very good and if you are open-source fans maybe you can give them a hand and test it:
I would add this for numeric computations:
and if you need more:
Of course running python and entering e.g. "dir(str)" or "help(str)" or more specific "help(str.title)" is very useful for all libraries.
The Google Python Coding Standards Doc is great:
http://code.google.com/p/soc/wiki/PythonStyleGuide (specific to the Google and the Melange Project)
Other super-useful libraries:
[pytz (python timezone management) - just one of many [URL="http://pypi.python.org/pypi/"]packages](http://pypi.python.org/pypi/pytz)
boto (amazon web service apis)
cjson (fastest json library that we've tested)
I also use this a bunch for regex testing:
How to think like a computer scientist - A great introduction into Python. Not a 'tutorial' oriented approach, but a more problem solving approach, which is fantastic.
Off Topic:Project Euler
- Although not Python specific, it has helped me learn a lot about the language. Its also fun to solve =)
hey python peeps MIT Switched to Python for computer science and now have open courseware you can watch lectures from MIT for free and learn Computer science programing etc.. Visit mit site http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/
Here are some additional Python and Python-related resources for anyone learning Python.
PEP-8: Style Guide for Python Code
The Django Book: Book about developing using the Django framework
Django Snippets: Helpful bits of Django code
Pylons: Another popular web-development framework
You should also check out virtualenv, a Python library that allows you to create isolated Python environments. This library helps to avoid messy site-packages directories and managing package dependencies.
Furthermore, if you are using Django, this blog post Basic Django deployment with virtualenv, fabric, pip and rsync is a good place to start learning about the best deployment strategies.
General stuff that maybe should be at the top (esp for those new to Python):
Python is written in C, and is known as "CPython" when talking of other implementations to avoid confusion.
A fork of CPython with (micro)threading, task scheduling, and infinite recursion (yikes!) is Stackless Python.
PyPy is Python written in Python. It's available in different versions/modules:
- without Just-In-Time compiler
- stackless (like Stackless Python)
- sandboxing version
Jython: Python in Java bytecode (not to be comfused with JPython... Jython replaces this).
[IronPython: Python for .NET and Mono, written in C#. *news: [url=http://pytools.codeplex.com/]Microsoft as brought out a Beta version of Python tools for Visua Studio](http://ironpython.net/)
Some useful link:
Editor for python(free)
Pyscripter(easy,light,i think the best for beginners)
KomodoEdit(the free version of Komodo Ide)
Eclipse(very good,but for someone is not so light)
Geany(similar at notepad++...but for linux...and now for windows too)