|Deletions are marked like this.||Additions are marked like this.|
|Line 108:||Line 108:|
|* [[http://codespeak.net/lxml/|lxml.html]] has support for dealing with forms in HTML documents||* [[http://lxml.de/|lxml.html]] has support for dealing with forms in HTML documents|
|Line 113:||Line 113:|
|* [[http://codespeak.net/lxml/|lxml.html]] is a very fast, easy-to-use and versatile library for handling (and fixing up) HTML||* [[http://lxml.de/|lxml.html]] is a very fast, easy-to-use and versatile library for handling (and fixing up) HTML|
|Line 122:||Line 122:|
|* [[http://codespeak.net/lxml/|lxml]] is a very fast, easy-to-use and versatile library for XML handling that is mostly compatible with but much more feature-rich than ElementTree||* [[http://lxml.de/|lxml]] is a very fast, easy-to-use and versatile library for XML handling that is mostly compatible with but much more feature-rich than ElementTree|
Useful Modules, Packages and Libraries
- Foreign Function Interface
- Game Development
- GIS (Geographic Information System)
- ID3 Handling
- Image Manipulation
- Indexing and Searching
- RDF Processing
- Standard Library Enhancements
- Web Development
- XML Processing
- Flow Based Programming
- Editorial Notes
Useful Modules, Packages and Libraries
The intent of this page is to list some of the most commonly used Python modules, in the hope that it will provide useful recommendations for other programmers (especially beginners). Remember that in addition to the listings below, there are other directories of Python modules - see PublishingPythonModules for details. Another collection of library details can be found on the Libraries page.
Be warned that this list is subjective by its very nature - it is only intended as a helpful guide. It is not definitive in any way, nor should it discourage developers from developing their own modules.
See also DatabaseProgramming for guidance.
Foreign Function Interface
CTypes - A package for calling the functions of dlls/shared libraries. Now included with Python 2.5 and up.
PyGame - Principal wrapper of the SDL library.
GIS (Geographic Information System)
GIS Web services - Packages to access to Google Maps, Yahoo! MapsÃ¢ÂÂ¦ and more information
PyGtk - Bindings for the cross-platform Gtk toolkit.
PyQt - Bindings for the cross-platform Qt framework.
TkInter - The traditional Python user interface toolkit.
GUI Programming is, in many cases, a matter of taste. See a more extensive list on the GuiProgramming page.
Ascii Table packages
Mutagen - Mutagen is a Python module to handle audio metadata. It supports FLAC, M4A, Musepack, MP3, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, True Audio, and WavPack audio files. All versions of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg streams on an individual packet/page level.
ID3Reader - "Id3reader.py is a Python module that reads ID3 metadata tags in MP3 files. It can read ID3v1, ID3v2.2, ID3v2.3, or ID3v2.4 tags. It does not write tags at all" (from site). Used in ID3Writer. Does not work with Python 3000. Not maintained since 2006.
PyID3 - ""(Appears to be inactive)""Module for manipulating ID3 informational tags in MP3 audio files. Not as good as ID3Writer, but no issues w/ genre, unlike ID3Writer. Not maintained since 2007.
pytagger - tag reader and writer implemented purely in Python. Supports ID3v1, ID3v1.1, ID3v2.2, ID3v2.3 and ID3v2.4
Python Imaging Library (PIL) - Supports many file formats, and provides powerful image processing and graphics capabilities.
Indexing and Searching
TwistedMatrix - Event-driven networking framework
RPyC - Transparent RPC/distributed-computing framework
PyRO - powerful OO RPC
HTTPLib2 - A comprehensive HTTP client library that supports many features left out of other HTTP libraries, like httplib on the standard library.
Psyco - Psyco can speed up the execution of any Python code (x86 only).
PyInstaller - Packages Python programs into stand-alone executables, under Windows, Linux and Irix.
py2app - Creates stand-alone apps (like py2exe for Mac)
PyObjC - Bridge between the Python and Objective-C. Most important usage of this is writing Cocoa GUI applications on Mac OS X in pure Python
PyWin32 - Python extensions for Windows.
Py2exe - Converts python scripts into executable windows programs, able to run without requiring a python installation.
Chaco - Creates interactive plots
gnuplot.py - Based on gnuplot
Matplotlib - Production quality output in a wide variety of formats
PyX - Postscript and PDF output, (La)TeX integration
ReportLab includes a charting package
See RdfLibraries for a list of available RDF processing solutions.
Visual Python - Offers real-time 3D output, is easily usable by novice programmers, excellent for physics.
SciPy - Includes modules for graphics and plotting, optimization, integration, special functions, signal and image processing, genetic algorithms, ODE solvers, and others.
Python Bindings for R - R is a well known, open source (GPL 2) statistical package. RPy has two versions. Version 2 is still in development but is already usable.
PyIMSL is a collection of Python wrappers to the mathematical and statistical algorithms in the IMSL C Numerical Library. Developers can use Python, PyIMSL and the IMSL C Numerical Library for rapid prototyping. PyIMSL Studio is a complete packaged, supported and documented development environment designed for deploying mathematics and statistics prototype models into production applications. PyIMSL Studio includes the PyIMSL wrappers, the IMSL C Numerical Library, a Python distribution and a selection of open source python modules useful for prototype analytical development. PyIMSL Studio is available for download at no charge for non-commercial use or for commercial evaluation.
Standard Library Enhancements
Python Path - Wraps the functionality of the os.path module and provides something more convenient.
PyLibrary - Collection of Libraries useful for Python developers.
ThreadPool - Intuitive approach to threads, well-explained.
See the ParallelProcessing page for other multiprocessing or parallel processing approaches.
Django - High-level web framework.
Pyramid - Turbogears, Pylons, Repoz.bfg merged as Pyramid.
web2py - High-level framework for agile development.
ClientForm - "ClientForm is a Python module for handling HTML forms on the client side, useful for parsing HTML forms, filling them in and returning the completed forms to the server. It developed from a port of Gisle Aas' Perl module HTML::Form, from the libwww-perl library, but the interface is not the same." - from the website.
lxml.html has support for dealing with forms in HTML documents
Beautiful Soup - HTML/XML parser designed for quick turnaround projects like screen-scraping, will accept bad markup.
mxTidy - HTML cleanup tool. This is a library version of the popular HTML Tidy command-line application which will convert HTML (even badly formatted) into e.g. XHTML.
lxml.html is a very fast, easy-to-use and versatile library for handling (and fixing up) HTML
See also PythonXml for related tools.
openflow - A workflow engine for Zope 2.
Goflow - A workflow engine for Django, with same design as openflow.
ElementTree - The Element type is a simple but flexible container object, designed to store hierarchical data structures, such as simplified XML infosets, in memory. --Note: Python 2.5 and up has ElementTree in the Standard Library--
PythonXml provides a list of available XML processing solutions.
Flow Based Programming
Please avoid listing modules where...
- You are one of the developers (and you just want to promote your work somewhere).
- The modules in question do not have widespread approval or usage.
If you do want to make people aware of a module, package or library (perhaps your own), consider submitting it to one or more of the directories mentioned in PublishingPythonModules, perhaps also adding it to the topic-specific part of this site (eg. WebProgramming, GuiProgramming).
Do list modules that:
- Get recommended often in the Tutor or comp.lang.python lists
Please provide a short description for each module. Try to put each module in the category that matches its "main" audience, since a module might fall into a number of categories.