How to Solve Problems with Python

Python can do many things, but it's not always easy to find the right resources and put them together quickly towards solving a specific problem. The links below make it easier to get started using Python for a particular purpose. Be sure to search Google as well; this site can't possibly keep up with the pace of development in the Python world.

Learning Python

Experienced programmers don't need to worry about learning Python: Just dive into your project and learn as you go from the Python Manual. Python is easy to learn, so you'll be working productively within a few days at most.

If you're looking for more gentle introductions to Python, see Python for Beginners or the Python Language Tutorial. See also this list of tutorials.

Got a question? Try posting on the comp.lang.python users list (also available as an email list). This is a great place to ask questions and get very well thought out answers... because people that use Python like to help others get started with it!

Using Python on Windows

Python Win32 Extensions add support for COM and other Windows APIs.

Python for .NET provides tight integration with Microsoft's .NET.

VB to Python Converter is a utility for converting Visual Basic GUIs into Python.

Using Python with Java

Scripting Java with Jython -- Use Python for one-off scripting, to write test code, or to probe your Java libraries interactively. Once you're started, you may just want to write your modules in Python too!

Website Development

Zope is a complex and powerful system that provides a scalable application server and very nice web content management tools. See the documentation

Plone is a full-featured content management system built on top of Zope. See also this article.

Webware is another well-established web development framework for Python.

CherryPy is a web development framework that claims a unique "less code, more power" approach.

The Web Framework Shootout compares these and other options.

Python and Apache can be used efficiently together with the mod_python plug in (which avoids CGI overhead).

Clearsilver can be used with Python.

Complex integrated internet applications may benefit from Twisted, which is a sophisticated framework for building networked applications.

Also available: a general guide to Web Programming in Python

XML and Web services

XML Processing in Python

Web Services in Python

Sourceforge's Python Web services projects.

Harvesting website content with Python

Generating Dynamic Documents with Python

Database Programming

Database Programming in Python

GUI Development

There are many choices for GUI development with Python. See this page of notes, which includes links to the options. See also this page.

PyQt is a robust commercial option. See also this article.

wxPython is one of the leading open source options. See Getting Started with wxPython and WxPython Cookbook. Also available: This wxPython for Newbies on IBM developerWorks.

PyGTK is great for Linux/Unix and, to some extent Windows with pygtk and win32gtk patches from Archaeopteryx. There is ongoing development for a Mac OS native port. Because GTK's internal design makes subclassing C code with Python easy, PyGTK is a cross-platform option to watch.

Python Card is a rapid application development environment for WXPython GUIs. Get started quickly by following the simple instructions in the PythonCard User's Guide.

GUI Development with Tkinter

Python for Delphi

Text Processing

Regular Expression How-To

Sorting mini How-To

Specific Domains

Scientific Computing with Python

Beginning Python for Bioinformatics

Beginning Python for Physics

Other Topics

Python Sockets How-To

Curses programming with Python

For tasty recipes, see the Python Cookbook.

See also this list of Python articles by David Mertz.

Development Tools

See this list of Integrated Development Environments for Python and also this list of Editors for Python.

PyChecker is a static analysis tool for finding bugs in Python source code, much as a compiler does for non-interpreted languages.

Python Package Index (PyPI) and The Vaults of Parnassus are good places to look for Python packages that aren't in the Python Standard Library.