Bibliothèques pour Python
Un livre de Wikibooks.
| Programmation Python |
| Partie 1 : Introduction |
| Partie 2 : Le langage |
| Partie 3 : Les bibliothèques |
|
| Partie 4 : Autour de Python |
| Annexe |
| Modifier ce modèle |
Une des grandes forces du langage Python réside dans le nombre important de bibliothèques logicielles externes disponibles. Une bibliothèque est un ensemble de fonctions. Celles-ci sont regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à les réécrire.
Celles-ci permettent de faire : du calcul numérique, du graphisme, de la programmation internet ou réseau, du formatage de texte, de la génération de documents...
Sections |
[modifier] Bibliothèques standards
La distribution standard de Python contient un certain nombre de bibliothèques qui ont été considérées comme suffisamment génériques pour intéresser la majorité des utilisateurs.
Leur utilisation est relativement bien expliquée dans la documentation de la distribution.
Les couches de présentation des applications (couche IHM avec wxPython, pyQt, PyKDE Tk, tkinter 3000, pyGTK, pybwidget, Pmw, TIX)
les couches controller des serveurs d'application Web (analyse HTML -htmllib, xmllib, urlParse, mimetools- Serveur d'application : Zope - Django, Turbogears, CherryPy, Plone, GGI)
les couches Modele d'accès aux données (MySQL -MySQLdb- , Oracle -dcoracle-, MS SQL Server, PostgreSQL -psycopg-, FireBird -kinterbasdb- , SybODBC, GadFly, PySqlite, Zodb- BDD objet -)
la couche de persistance XML (4Suite, PySimpleXML, XmlSerializer, Jaxml) ou spécifique à Python (Cpickle, Shelve)
les couches d'accès au middleware ICE, COM/CORBA/.NET (win32, OmniORB, Ironpython) : programmation orientée composant (pont vers des bibliothèques Fortran, C et C++)
les couches de communication standalone (port série : pySerial, port parallèle : pyParallel) , réseau (Twisted, urllib2, HTMLparser, ftplib], socket, poplib, rfc822, mailbox, mhlib, imaplib, smtplib, telnet, etc.)
les couches de frameWork bas niveau (ajout de capacité de script. exemple : Boost.Python)
Les couches multimédia : traitement d'image (PIL)
Les couches utilitaires :
- de gestion de l'heure (datetime, time)
- de compression (gzip)
- de codage/décodage de données binaires (hashlib -md5, sha- , base64, binHex, binascii)
- de structure de données (decimal, deque, array, dico, list, queue, heapq)
- de parallélisme (thread)
- d'expressions régulières (re)
- de différences (difflib)
- d'acces au dll ou.so (ctype)
- de manipulation de chaînes (string, str, StringIO)
- de parseur (standard - shlex, ConfigParser, email, parser, cmd - ou Tierce- pyBison, ples, pyparsing, ply, PyGgy, Yapps, pyLR)
- de calcul (math, numarrray - tableaux multidimensionnaires - , cmath, random)
- de log (logging)
Le déploiement se fait soit en utilisant des modules d'installation standardisés (distutils), soit en générant un exécutable qui ne nécessite plus l'existence de l'interpréteur sur les machines cibles (Windows : py2exe, Cx_freeze; Unix : freeze)
[modifier] Bibliothèques alternatives
- Un site internet recense la liste des bibliothèques utilisables avec ce langage: http://www.vex.net/parnassus
- Les bibliothèques les plus populaires et les plus utilisées (XML, interfaces graphiques...) bénéficient de pages dédiées sur le site principal du langage : http://cheeseshop.python.org/pypi?%3Aaction=index
[modifier] Liste de Bibliothèques
Incomplète
- CWM : Modules de parseur pour le web semantique :http://infomesh.net/2001/cwm/
- epydoc : Utilisé pour générer la documentation : http://epydoc.sourceforge.net/
- SAGE : Logiciel d'algèbre et de géometrie (alternative à MAthematica, Maple ...) : géométrie, théorie des nombres, cryptographie, calcul numérique... : http://modular.math.washington.edu/sage/
- pyCLIPS : Module pour scripter le système expert CLIPS : http://pyclips.sourceforge.net/
- Pychinko: Implémentation de l'algorithme de Rete (pour le chaînage avant)
- pydot : Module pour scripter le générateur de graphique Graphviz : http://dkbza.org/pydot.html
- Pygame : Module de création de jeu 2D : http://www.pygame.org/news.html
- PySFML : Module de création de jeu 2D : http://www.sfml-dev.org/tutorials/start-python-fr.php
- Pyglet : Module de création de jeu 2D utilisant l'openGL : http://www.pyglet.org/
- Cocos2d : Frameworks multiplateformes pour construire des jeux 2d, demos ou des applications interactives graphiques en openGL (nécessite Pyglet) : http://cocos2d.org/
- Karrigell, CherryPy , TurboGears ,Django , Web2py, Pylons : Framework de développement web.
- Soya : Moteur 3D :http://home.gna.org/oomadness/en/soya3d/index.html
- Panda 3D : Moteur 3D : http://www.panda3d.org/
- PyOgre : Moteur 3D : http://www.ogre3d.org/
- Pmw, Pybwidget, Tkinter 3000, PyGTK : Interface graphique.
- pyinstaller : Création d'exécutable pour toute plateforme : http://pyinstaller.python-hosting.com/
- Py2exe : Créer un exécutable Windows pour vos scripts : http://www.py2exe.org/
- MySQLdb, Gadfly, Psycopg, Kinterbasdb, Buzhug : Base de données.
- Matplotlib : Bibliothèque de dessin de courbe 2D (très riche) : http://matplotlib.sourceforge.net/
- gnuplot-py : Bibliothèque pour s'interfacer avec gnuplot : http://gnuplot-py.sourceforge.net/
- PyNGL : Bibliothèque pour créer des graphes 2D : http://www.pyngl.ucar.edu/index.shtml
- scipy et numpy : Framework pour le calcul scientifique : Interpolation, intégration (ODE integrators), algèbre linéaire (LAPACK), Interpolation, systèmes dynamiques (PyDSTool) : http://www.scipy.org/
- PIL : Manipulation et traitement d'image : http://www.pythonware.com/products/pil/
- SVGdraw: Création d'image au format SVG (Scalable Vector Graphics) : http://www2.sfk.nl/svg
- pygsl : Interface vers GNU scientific library (gsl): vecteur, matrice, transformation de fourrier, recuit simulé, algèbre linéaire... : http://pygsl.sourceforge.net/
- CGAL: CGAL-Python bindings pour la CGAL library (Computational Geometry Algorithms Library) : http://cgal-python.gforge.inria.fr/
- GMPY : General Multiprecision PYthon : Interface vers la bibliothèque de précision arithmétique GNU GMP : http://gmpy.sourceforge.net/
- pyrorobotics : Environnement pour l'étude de la robotique et l'intelligence artificielle. Réseaux de neurones : http://www.pyrorobotics.org/
- pybel : Interface pour la bibliothèque Open source de CHIMIE Open Babel.
- FANN : Fast Artificial Neural Network Library : binding Python pour FANN : http://leenissen.dk/fann/index.php
- Maximum Entropy Modeling Toolkit : Framework qui met en oeuvre le principe de l'entropie maximum : http://homepages.inf.ed.ac.uk/s0450736/maxent_toolkit.html
- Orange : Technique d'exploration de données, data mining : http://www.ailab.si/orange
- MayaVi2 : Visualisation des données scientifiques en 2D/3D : https://svn.enthought.com/enthought/wiki/MayaVi
- pySerial : Manipulation des ports séries, non intégrés par défaut, bien que très souvent utilisés dans le monde industriel : http://pyserial.sourceforge.net/
- pyParallel : Accès aux ports parallèles : http://pyserial.sourceforge.net/pyparallel.html
- pyMPI : Calcul parallèle : http://pympi.sourceforge.net/index.html
- PyPar : Calcul parallèle : http://datamining.anu.edu.au/~ole/pypar/
- PyVISA : Contrôle des ports GPIB, RS232, and USB : http://pyvisa.sourceforge.net/
- PyUSB : Manipulation du port USB : http://pyusb.berlios.de/
- pyro : Middleware Python Remote Objects : http://pyro.sourceforge.net/
- pyX : Python graphics package - Analyse de donnée : http://pyx.sourceforge.net/
- simPy : Simulation de systèmes dynamiques à file d'attente : http://simpy.sourceforge.net/
- Twisted : Pluggable, asynchronous protocols (TCP, UDP, SSL/TLS, multicast, Unix sockets, HTTP, NNTP, IMAP, SSH, IRC, FTP) : http://twistedmatrix.com/trac/
- SCons : Alternative puissante à make (next-generation build tool) : http://www.scons.org/
- VPython : Simulation 3D basée sur OpenGl : http://www.vpython.org/
- directpython: Binding vers Direct X : http://directpython.sourceforge.net/
- pymedia : Module for wav, mp3, ogg, avi, divx, dvd, cdda etc. files manipulations : http://pymedia.org/
- wxPython : Bibliothèque d'accès à un toolkit très puissant (en particulier pour les interfaces graphiques) : http://www.wxpython.org/
- PyML : Python machine learning package : Framework pour l'apprentissage par les machines (data mining ...) : http://pyml.sourceforge.net/
- Zope : Serveur d'application web orienté objet et base de données Objet : http://www.zope.org/