Differences between revisions 27 and 117 (spanning 90 versions)
Revision 27 as of 2006-08-17 16:46:01
Size: 6299
Editor: PaulBoddie
Comment: Added GameProgramming.
Revision 117 as of 2018-08-20 14:00:38
Size: 14788
Editor: PySimpleGUI
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
The intent of this page is to list the most commonly used Python modules, in hopes that it will provide useful for other programmers (especially beginners). <<TableOfContents>>
Line 3: Line 3:
Please avoid listing modules that either:
 * You have made
 * Don't have community approval (ie. are not widely used, are regarded as "unpythonic")
= 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.

== Standard Library Backports ==
 * StandardLibraryBackports - modules that make later standard library functionality available in earlier version

== Cryptography ==
 * [[Cryptography|Python and Cryptography]]

== Database ==
 * [[http://www.sqlalchemy.org/|SQLAlchemy]] or [[http://sqlobject.org/|SQLObject]] - Object oriented access to several different database systems
 * DatabaseInterfaces - Direct Python interfaces to relational and non-relational database backends
 * See also DatabaseProgramming for guidance on choosing a database backend system

== Foreign Function Interface ==
 * [[http://starship.python.net/crew/theller/ctypes/|CTypes]] - A package for calling the functions of dlls/shared libraries. Now included with Python 2.5 and up.
 * [[http://cython.org/|Cython]] is an extension language for the CPython runtime. It translates Python code to fast C code and supports calling external C and C++ code natively. As opposed to ctypes, it requires a C compiler to translate the generated code.

== Game Development ==
 * [[http://www.pygame.org/|PyGame]] - Principal wrapper of the SDL library.
 * See also GameProgramming. A more comprehensive list of packages can be found on the PythonGameLibraries page.

== GIS (Geographic Information System) ==
 * [[GIS/Web_services|GIS Web services]] - Packages to access to Google Maps, Yahoo! Maps… and more information

== GUI ==
 * PyGtk - Bindings for the cross-platform Gtk toolkit.
 * PyQt - Bindings for the cross-platform Qt framework.
 * TkInter - The traditional Python user interface toolkit.
 * WxPython - wxWidgets bindings for Python supporting PythonCard, [[Wax]] and other frameworks.
 * PyjamasDesktop - Bindings and a framework for the cross-platform [[http://webkit.org|webkit]].
 * [[www.PySimpleGUI.com|PySimpleGUI]] - Wrapper for TkInter that makes customer GUI development easy and compact
 * GUI Programming is, in many cases, a matter of taste. See a more extensive list on the GuiProgramming page.

=== Console ===
 * [[Console/Ascii_table|Ascii Table]] packages

== Audio / Music ==
 * [[Audio|Audio in Python]]

== ID3 Handling ==
 * [[http://code.google.com/p/mutagen/|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. '''It only writes ID3v2.4''' (introduced in 2000, but as of Windows 8 still not supported by MediaPlayer).
 * [[http://www.nedbatchelder.com/code/modules/id3reader.html|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.
 * [[http://sourceforge.net/projects/pyid3|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.
 * [[http://www.liquidx.net/pytagger/|pytagger]] - tag reader and writer implemented purely in Python. Supports ID3v1, ID3v1.1, ID3v2.2, ID3v2.3 and ID3v2.4
 * [[http://eyed3.nicfit.net/|eyeD3]] - is a Python module and program for processing ID3 tags. It can extract information such as bit rate, sample frequency, play time, etc. It supports ID3 v1.0/v1.1 and v2.3/v2.4.
 * [[http://pypi.python.org/pypi/hsaudiotag3k#downloads|hsaudiotag]] - Py3k - hsaudiotag is a pure Python library that lets you read metadata (bitrate, sample rate, duration and tags) from mp3, mp4, wma, ogg, flac and aiff files. It can only read tags, not write to them, but unlike more complete libraries (like Mutagen), it is BSD licensed.
 * [[https://pypi.python.org/pypi/pytaglib|pytaglib]] - Python 3.x and 2.x support - bindings to the C++ [[http://taglib.github.io|taglib]] library, reads and writes mp3, ogg, flac, mpc, speex, opus, WavPack, TrueAudio, wav, aiff, mp4 and asf files.

== Image Manipulation ==
 * [[http://www.pythonware.com/products/pil/|Python Imaging Library (PIL)]] - Supports many file formats, and provides powerful image processing and graphics capabilities.
 * [[http://www.pyqtgraph.org/|pyqtgraph]] - Pure-python graphics library for scientific applications with image/video display, multidimensional image slicing, and interactive manipulation tools.

== Indexing and Searching ==
 * InformationRetrieval

== Java ==
 * [[ScriptingJava|Java scripting]]

== Networking ==
 * [[http://asyncoro.sourceforge.net|asyncoro]] - Asynchronous, concurrent programming framework with coroutines with thread-like interface
 * [[http://gevent.org|Gevent]] - Coroutine-based network library
 * [[http://twistedmatrix.com|TwistedMatrix]] - Event-driven networking framework
 * [[http://rpyc.wikispaces.com|RPyC]] - Transparent RPC/distributed-computing framework
 * [[http://pyro.sourceforge.net|PyRO]] - powerful OO RPC
 * [[http://code.google.com/p/httplib2/|HTTPLib2]] - A comprehensive HTTP client library that supports many features left out of other HTTP libraries, like httplib on the standard library.
 * [[http://celeryproject.org|Celery]] - Distributed task queue for out of band processing/RPC and more.

== Platform-Specific ==
 * [[http://psyco.sourceforge.net/|Psyco]] - Psyco can speed up the execution of any Python code (x86 only).
 * [[http://www.pyinstaller.org/|PyInstaller]] - Packages Python programs into stand-alone executables, under Windows, Linux and Irix.

=== Mac ===
 * [[http://pythonmac.org/wiki/py2app|py2app]] - Creates stand-alone apps (like py2exe for Mac)
 * [[http://pyobjc.sourceforge.net|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

=== Windows ===
 * [[https://sourceforge.net/projects/pywin32/|PyWin32]] - Python extensions for Windows.
 * [[http://www.py2exe.org/|Py2exe]] - Converts python scripts into executable windows programs, able to run without requiring a python installation.

== Plotting ==
 * [[http://code.enthought.com/chaco/|Chaco]] - Creates interactive plots
 * [[http://gnuplot-py.sourceforge.net/|gnuplot.py]] - Based on gnuplot
 * [[http://matplotlib.sourceforge.net/|Matplotlib]] - Production quality output in a wide variety of formats
 * [[https://plot.ly/|Plotly]] - Interactive, publication-quality, web based charts
 * [[http://pyx.sourceforge.net/|PyX]] - Postscript and PDF output, (La)TeX integration
 * [[http://www.reportlab.org/|ReportLab]] includes a charting package
 * [[http://home.gna.org/veusz/|Veusz]] - Postscript output with a PyQt front end
 * [[http://www.pyqtgraph.org/|pyqtgraph]] - Pure-python plotting and graphics library based on PyQt and numpy.

The SciPy [[http://scipy.org/Topical_Software#head-b98ffdb309ccce4e4504a25ea75b5c806e4897b6|topical software]] page has a longer list.

== Presentation ==
 * http://docutils.sourceforge.net/docs/user/tools.html#rst2s5-py - Create HTML slides from .rst files
 * http://seld.be/notes/introducing-slippy-html-presentations - For your Python presentations in browser

== RDF Processing ==
 * See RdfLibraries for a list of available RDF processing solutions.

== Scientific ==
 * [[http://vpython.org/|Visual Python]] - Offers real-time 3D output, is easily usable by novice programmers, excellent for physics.
 * [[http://www.scipy.org/|SciPy]] - Includes modules for graphics and plotting, optimization, integration, special functions, signal and image processing, genetic algorithms, ODE solvers, and others.
 * [[http://rpy.sourceforge.net/|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.
 * [[numpy]]
 * [[http://www.roguewave.com/products/imsl-numerical-libraries/pyimsl-studio.aspx|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. [[http://www.roguewave.com/products/imsl-numerical-libraries/pyimsl-studio.aspx|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 ==
 * [[http://pypi.python.org/pypi/path.py|Python Path]] - Wraps the functionality of the os.path module and provides something more convenient.
 * [[https://pypi.python.org/pypi/requests|Requests]] - An improvement upon urllib etc., for sending HTTP requests.
 * [[https://pypi.python.org/pypi/python-dateutil|Dateutil]] - Provides powerful extensions to the datetime module.
 * [[https://pypi.python.org/pypi/sh|sh]] - Can call any external program as if it were a function.
 * [[https://pypi.python.org/pypi/docopt|DocOpt]] - Command line arguments parser, with declarative approach (docstring).
 * [[http://sourceforge.net/projects/pylibrary/|PyLibrary]] - Collection of Libraries useful for Python developers.

== Threading ==
 * [[http://chrisarndt.de/projects/threadpool/|ThreadPool]] - Intuitive approach to threads, well-explained.
 * See the ParallelProcessing page for other multiprocessing or parallel processing approaches.

== System administration ==
 * [[https://github.com/giampaolo/psutil|psutil]] - cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python.

== Web Development ==
 * [[http://www.djangoproject.com|Django]] - High-level web framework.
 * [[http://docs.pylonsproject.org/|Pyramid]] - Turbogears, Pylons, Repoz.bfg merged as Pyramid.
  * [[http://www.turbogears.org|TurboGears]] - Rapid web development megaframework.
  * [[http://pylonshq.com|Pylons]] - A lightweight web framework emphasizing flexibility and rapid development.

 * [[http://web2py.com/|web2py]] - High-level framework for agile development.
 * [[http://flask.pocoo.org/|Flask]] - microframework for Python based on Werkzeug, Jinja 2. (It's BSD licensed)
 * See a more complete list of topics on the WebProgramming page and frameworks on the WebFrameworks page.

=== HTML Forms ===
 * [[http://wwwsearch.sourceforge.net/ClientForm/|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.
 * [[http://formencode.org/|FormEncode]]
 * [[http://lxml.de/|lxml.html]] has support for dealing with forms in HTML documents
 * See also the WebProgramming and WebFrameworks pages.

=== HTML Parser ===
 * [[http://www.crummy.com/software/BeautifulSoup/|Beautiful Soup]] - HTML/XML parser designed for quick turnaround projects like screen-scraping, will accept bad markup.
 * [[http://packages.python.org/pyquery/|PyQuery]] - implements jQuery in Python; faster than BeautifulSoup, apparently.
 * [[http://www.egenix.com/products/python/mxExperimental/mxTidy/|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.
 * [[http://lxml.de/|lxml.html]] is a very fast, easy-to-use and versatile library for handling (and fixing up) HTML
 * See also PythonXml for related tools.

== Workflow ==
 * [[http://www.openflow.it/Openflow|openflow]] - A workflow engine for Zope 2.
 * [[http://code.djangoproject.com/wiki/GoFlow|Goflow]] - A workflow engine for Django, with same design as openflow.

== XML Processing ==
 * [[http://effbot.org/zone/element-index.htm|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--
 * [[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
 * [[http://wiki.xml3k.org/Amara2|Amara]] - Amara provides tools you can trust to conform with XML standards without losing the familiar Python feel. (see also the [[http://wiki.xml3k.org/Amara|1.x version]])
 * PythonXml provides a list of available XML processing solutions.

== Flow Based Programming ==
 * [[FlowBasedProgramming|Python and Flow Based Programming (pipelines)]]

== Editorial Notes ==
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).
Line 8: Line 171:
Line 10: Line 174:
Be warned that this list is subjective by its very nature. It's only intended as a helpful guide. It is not definitive in any way, nor should it discourage developers into developing their own modules.

Please provide a short description for each module. Try to put each module in the category that matches it's "main" audience, since a module might fall into a couple of categories.

[[TableOfContents]]

=== Database ===
 * [http://sqlobject.org/ SQLObject] - Provides an object oriented way of accessing several different DBs

=== Game development ===
 * [http://www.pygame.org/ PyGame] - Wrapper to the SDL library.
 * See also ["GameProgramming"]. A more comprehensive list of packages can be found on the ["PythonGameLibraries"] page.

=== General category ===
 * [http://www.jorendorff.com/articles/python/path/ Python Path] - Wraps the functionality in the os.path module.

=== GUI ===
 * [http://www.wxpython.org/ wxPython] - wxWidgets bindings to Python.
 * [http://pythoncard.sourceforge.net/ PythonCard] - Framework built on top of wxPython
 * GUI Programming is, in many cases, a matter of taste. See a more extensive list at GuiProgramming

=== HTML Forms ===
 * [http://wwwsearch.sourceforge.net/ClientForm/ 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.
 * [http://formencode.org/ FormEncode]

=== HTML Parser ===
 * [http://www.crummy.com/software/BeautifulSoup/ Beautiful Soup] - HTML/XML parser designed for quick turnaround projects like screen-scraping, will accept bad markup.

=== ID3 Handling ===
 * [http://www.nedbatchelder.com/code/modules/id3reader.html 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
 * [http://www.comfortableshoe.co.uk/cgi-bin/blosxom.cgi/Home/Python/id3Writer.comments ID3Writer] - Writes ID3 Tags for mp3s (both v1 and v2, as necessary). No Unicode support as of yet. Uses ID3Reader.
 * [http://sourceforge.net/projects/pyid3 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.
 * [http://www.liquidx.net/pytagger/ pytagger] - tag reader and writer implemented purely in Python. Supports ID3v1, ID3v1.1, ID3v2.2, ID3v2.3 and ID3v2.4

=== Image manipulation ===
 * [http://www.pythonware.com/products/pil/ Python Imaging Library (PIL)] - Supports many file formats, and provides powerful image processing and graphics capabilities.

=== Plotting ===
 * [http://code.enthought.com/chaco/ Chaco] - Creates interactive plots
 * [http://gnuplot-py.sourceforge.net/ gnuplot.py] - Based on gnuplot
 * [http://matplotlib.sourceforge.net/ Matplotlib] - Production quality output in a wide variety of formats
 * [http://pyx.sourceforge.net/ PyX] - Postscript and PDF output, (La)TeX integration
 * [http://www.reportlab.org/ ReportLab] includes a charting package
 * [http://home.gna.org/veusz/ Veusz] - Postscritpt output with a PyQt front end

The SciPy [http://scipy.org/Topical_Software#head-b98ffdb309ccce4e4504a25ea75b5c806e4897b6 topical software] page has a longer list.

=== Scientific ===
 * [http://vpython.org/ Visual Python] - Offers real-time 3D output, is easily usable by novice programmers, excellent for physics.
 * [http://www.scipy.org/ SciPy] - Includes modules for graphics and plotting, optimization, integration, special functions, signal and i* mage processing, genetic algorithms, ODE solvers, and others.
 * [http://www.omegahat.org/RSPython/index.html Python Bindings for R] - R is a well known, open source (GPL 2) statistical package. RSPython provides the ability to access R from python, and vice-versa.

=== Networking ===
 * TwistedMatrix - Event-driven networking framework

=== Threading ===
 * [http://chrisarndt.de/en/software/python/threadpool.html ThreadPool] - Intuitive approach to threads, well-explained.

=== Web development ===
 * [http://www.turbogears.org TurboGears] - Rapid web development megaframework.
 * [http://www.djangoproject.com Django] - High-level Python Web framework
 * See a more complete list of topics on the ["WebProgramming"] page.
 

=== Platform specific ===
 * [http://psyco.sourceforge.net/ Psyco] - Psyco can speed up the execution of any Python code (x86 only).
 * [http://pyinstaller.hpcf.upr.edu/cgi-bin/trac.cgi PyInstaller] - Packages Python programs into stand-alone executables, under Windows, Linux and Irix.

==== Mac ====
 * [http://pythonmac.org/wiki/py2app py2app] - Creates stand-alone apps (like py2exe for Mac)
 * [http://pyobjc.sourceforge.net 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

==== Windows ====
 * [https://sourceforge.net/projects/pywin32/ PyWin32] - Python extensions for Windows.
 * [http://www.py2exe.org/ Py2exe] - Converts python scripts into executable windows programs, able to run without requiring a python installation.

=== XML Processing ===
 * [http://effbot.org/zone/element-index.htm 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 will have ElementTree in the Standard Library--
 * [http://uche.ogbuji.net/tech/4suite/amara/manual Amara] - Amara provides tools you can trust to conform with XML standards without losing the familiar Python feel.
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.

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.

Standard Library Backports

Cryptography

Database

Foreign Function Interface

  • CTypes - A package for calling the functions of dlls/shared libraries. Now included with Python 2.5 and up.

  • Cython is an extension language for the CPython runtime. It translates Python code to fast C code and supports calling external C and C++ code natively. As opposed to ctypes, it requires a C compiler to translate the generated code.

Game Development

GIS (Geographic Information System)

  • GIS Web services - Packages to access to Google Maps, Yahoo! Maps… and more information

GUI

  • PyGtk - Bindings for the cross-platform Gtk toolkit.

  • PyQt - Bindings for the cross-platform Qt framework.

  • TkInter - The traditional Python user interface toolkit.

  • WxPython - wxWidgets bindings for Python supporting PythonCard, Wax and other frameworks.

  • PyjamasDesktop - Bindings and a framework for the cross-platform webkit.

  • PySimpleGUI - Wrapper for TkInter that makes customer GUI development easy and compact

  • GUI Programming is, in many cases, a matter of taste. See a more extensive list on the GuiProgramming page.

Console

Audio / Music

ID3 Handling

  • 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. It only writes ID3v2.4 (introduced in 2000, but as of Windows 8 still not supported by MediaPlayer).

  • 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

  • eyeD3 - is a Python module and program for processing ID3 tags. It can extract information such as bit rate, sample frequency, play time, etc. It supports ID3 v1.0/v1.1 and v2.3/v2.4.

  • hsaudiotag - Py3k - hsaudiotag is a pure Python library that lets you read metadata (bitrate, sample rate, duration and tags) from mp3, mp4, wma, ogg, flac and aiff files. It can only read tags, not write to them, but unlike more complete libraries (like Mutagen), it is BSD licensed.

  • pytaglib - Python 3.x and 2.x support - bindings to the C++ taglib library, reads and writes mp3, ogg, flac, mpc, speex, opus, WavPack, TrueAudio, wav, aiff, mp4 and asf files.

Image Manipulation

  • Python Imaging Library (PIL) - Supports many file formats, and provides powerful image processing and graphics capabilities.

  • pyqtgraph - Pure-python graphics library for scientific applications with image/video display, multidimensional image slicing, and interactive manipulation tools.

Indexing and Searching

Java

Networking

  • asyncoro - Asynchronous, concurrent programming framework with coroutines with thread-like interface

  • Gevent - Coroutine-based network library

  • 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.

  • Celery - Distributed task queue for out of band processing/RPC and more.

Platform-Specific

  • 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.

Mac

  • 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

Windows

  • PyWin32 - Python extensions for Windows.

  • Py2exe - Converts python scripts into executable windows programs, able to run without requiring a python installation.

Plotting

  • Chaco - Creates interactive plots

  • gnuplot.py - Based on gnuplot

  • Matplotlib - Production quality output in a wide variety of formats

  • Plotly - Interactive, publication-quality, web based charts

  • PyX - Postscript and PDF output, (La)TeX integration

  • ReportLab includes a charting package

  • Veusz - Postscript output with a PyQt front end

  • pyqtgraph - Pure-python plotting and graphics library based on PyQt and numpy.

The SciPy topical software page has a longer list.

Presentation

RDF Processing

  • See RdfLibraries for a list of available RDF processing solutions.

Scientific

  • 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.

  • numpy

  • 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.

  • Requests - An improvement upon urllib etc., for sending HTTP requests.

  • Dateutil - Provides powerful extensions to the datetime module.

  • sh - Can call any external program as if it were a function.

  • DocOpt - Command line arguments parser, with declarative approach (docstring).

  • PyLibrary - Collection of Libraries useful for Python developers.

Threading

  • ThreadPool - Intuitive approach to threads, well-explained.

  • See the ParallelProcessing page for other multiprocessing or parallel processing approaches.

System administration

  • psutil - cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python.

Web Development

  • Django - High-level web framework.

  • Pyramid - Turbogears, Pylons, Repoz.bfg merged as Pyramid.

    • TurboGears - Rapid web development megaframework.

    • Pylons - A lightweight web framework emphasizing flexibility and rapid development.

  • web2py - High-level framework for agile development.

  • Flask - microframework for Python based on Werkzeug, Jinja 2. (It's BSD licensed)

  • See a more complete list of topics on the WebProgramming page and frameworks on the WebFrameworks page.

HTML Forms

  • 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.

  • FormEncode

  • lxml.html has support for dealing with forms in HTML documents

  • See also the WebProgramming and WebFrameworks pages.

HTML Parser

  • Beautiful Soup - HTML/XML parser designed for quick turnaround projects like screen-scraping, will accept bad markup.

  • PyQuery - implements jQuery in Python; faster than BeautifulSoup, apparently.

  • 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.

Workflow

  • openflow - A workflow engine for Zope 2.

  • Goflow - A workflow engine for Django, with same design as openflow.

XML Processing

  • 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--

  • 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

  • Amara - Amara provides tools you can trust to conform with XML standards without losing the familiar Python feel. (see also the 1.x version)

  • PythonXml provides a list of available XML processing solutions.

Flow Based Programming

Editorial Notes

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.

UsefulModules (last edited 2018-08-20 14:00:38 by PySimpleGUI)

Unable to edit the page? See the FrontPage for instructions.