< Programmation Python

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

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’accès 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)
  • de test unitaire (unittest)

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)

Bibliothèques alternatives

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.

Il existe de nombreuses bibliothèques Python parmi lesquelles :

NomDescription
CGAL[1]Computational Geometry Algorithms Library : CGAL-Python bindings pour la CGAL library
CherryPyFramework de développement web.
Cocos2d[2]Frameworks multiplateformes pour construire des jeux 2d, démos ou des applications interactives graphiques en openGL (nécessite Pyglet)
CWM[3]Modules de parseur pour le web sémantique
directpython[4]Binding vers Direct X
DjangoFramework de développement web.
epydoc[5]Utilisé pour générer la documentation
FANN[6]Fast Artificial Neural Network Library : binding Python pour FANN
GadflyBase de données
GENA[7]Algorithme génétique en Python
GMPY[8]General Multiprecision PYthon : interface vers la bibliothèque de précision arithmétique GNU GMP
gnuplot-py[9]Bibliothèque pour s'interfacer avec gnuplot
guidata[10]Librairie graphique basée sur Qt dédiée à l'affichage de données
guiqwt[11]Librairie graphique basée sur Pyqwt dédiée à l'affichage de courbes
Karrigell[12]framework de développement web.
KinterbasdbBase de données
Matplotlib[13]Bibliothèque de dessin de courbe 2D (très riche)
Mahotas Bibliothèque d'analyse d'images
Maximum Entropy Modeling Toolkit[14]Framework qui met en œuvre le principe de l'entropie maximum
MayaVi2[15]Visualisation des données scientifiques en 2D/3D
MySQLdbBase de données
BuzhugBase de données
[16]Technique d'exploration de données, data mining
Panda 3D[17]Moteur 3D
PIL[18]Manipulation et traitement d'image
PmwInterface graphique
PybwidgetInterface graphique
PsycopgBase de données
Py2exe[19]Créer un exécutable Windows pour vos scripts
pybelInterface pour la bibliothèque Open source de CHIMIE Open Babel.
PychinkoImplémentation de l'algorithme de Rete (pour le chaînage avant)
pyCLIPS[20]Module pour scripter le système expert CLIPS
pydot[21]Module pour scripter le générateur de graphique Graphviz
Pygame[22]Module de création de jeu 2D
Pyglet[23]module de création de jeu 2D utilisant l'openGL
pygsl[24]Interface vers GNU scientific library (gsl): vecteur, matrice, transformation de fourrier, recuit simulé, algèbre linéaire...
PyGTKInterface graphique
PyIMSL Studio[25]Framework pour le calcul scientifique s'appuyant sur les bibliothèques mathématiques et statistiques IMSL
pyinstaller[26]Création d'exécutable pour toute plateforme
Pylons[27]Framework de développement web.
pymedia[28]Module pour manipulations de fichiers wav, mp3, ogg, avi, divx, dvd, cdda, etc.
PyML[29]Python machine learning package : framework pour l'apprentissage par les machines (data mining ...)
pyMPI[30]Calcul parallèle
PyNGL[31]Bibliothèque pour créer des graphes 2D
PyOgre[32]Moteur 3D
PyPar[33]Calcul parallèle
pyParallel[34]Accès aux ports parallèles
pyro[35]Middleware Python Remote Objects
pyrorobotics[36]Environnement pour l'étude de la robotique et l'intelligence artificielle. Réseaux de neurones
pySerial[37]Manipulation des ports séries, non intégrés par défaut, bien que très souvent utilisés dans le monde industriel
PySFML[38]module de création de jeu 2D
PyUSB[39]Manipulation du port USB
PyVISA[40]Contrôle des ports GPIB, RS232, and USB
pyX[41]Python graphics package - Analyse de donnée
SAGE[42]logiciel d'algèbre et de géométrie (alternative à MAthematica, Maple ...) géométrie, théorie des nombres, cryptographie, calcul numérique...
Scikit-learn Librairie d'apprentissage automatique
scipy et NumPy[43]Framework pour le calcul scientifique. Interpolation, intégration (ODE integrators), algèbre linéaire (LAPACK), Interpolation, systèmes dynamiques (PyDSTool)
SCons[44]Alternative puissante à make (next-generation build tool)
simPy[45]Simulation de systèmes dynamiques à file d'attente
Soya[46]Moteur 3D
SVGdraw[47]Création d'image au format SVG (Scalable Vector Graphics)
Tkinter 3000Interface graphique
TurboGearsframework de développement web.
Twisted[48]Pluggable, asynchronous protocols (TCP, UDP, SSL/TLS, multicast, Unix sockets, HTTP, NNTP, IMAP, SSH, IRC, FTP)
VPython[49]Simulation 3D basée sur OpenGl
Web2py[50]framework de développement web.
wxPython[51]Bibliothèque d'accès à un toolkit très puissant (en particulier pour les interfaces graphiques)
Zope[52]Serveur d'application web orienté objet et base de données Objet

Références

  1. http://cgal-python.gforge.inria.fr/
  2. http://cocos2d.org/
  3. http://infomesh.net/2001/cwm/
  4. http://directpython.sourceforge.net/
  5. http://epydoc.sourceforge.net/
  6. http://leenissen.dk/fann/index.php
  7. http://www.madiku.org/ylrt3i0sfy/?p=1291
  8. http://gmpy.sourceforge.net/
  9. http://gnuplot-py.sourceforge.net/
  10. http://pypi.python.org/pypi/guidata/
  11. http://packages.python.org/guiqwt/
  12. http://karrigell.sourceforge.net
  13. http://matplotlib.sourceforge.net/
  14. http://homepages.inf.ed.ac.uk/s0450736/maxent_toolkit.html
  15. https://svn.enthought.com/enthought/wiki/MayaVi
  16. http://www.ailab.si/orange
  17. http://www.panda3d.org/
  18. http://www.pythonware.com/products/pil/
  19. http://www.py2exe.org/ (version pour Python 2.7)
  20. http://pyclips.sourceforge.net/
  21. http://dkbza.org/pydot.html
  22. http://www.pygame.org/news.html
  23. http://www.pyglet.org/
  24. http://pygsl.sourceforge.net/
  25. http://sites.google.com/site/roguewavesoftwarefrance/produits/PyIMSL-Studio
  26. http://pyinstaller.python-hosting.com/
  27. http://www.pylonshq.com
  28. http://pymedia.org/
  29. http://pyml.sourceforge.net/
  30. http://pympi.sourceforge.net/index.html
  31. http://www.pyngl.ucar.edu/index.shtml
  32. http://www.ogre3d.org/
  33. http://datamining.anu.edu.au/~ole/pypar/
  34. http://pyserial.sourceforge.net/pyparallel.html
  35. http://pyro.sourceforge.net/
  36. https://pypi.python.org/pypi/pyRobotics/1.5
  37. http://pyserial.sourceforge.net
  38. http://www.sfml-dev.org/tutorials/1.6/start-python-fr.php
  39. http://pyusb.berlios.de/
  40. http://pyvisa.sourceforge.net/
  41. http://pyx.sourceforge.net/
  42. http://modular.math.washington.edu/sage/
  43. http://www.scipy.org/
  44. http://www.scons.org/
  45. http://simpy.sourceforge.net/
  46. http://home.gna.org/oomadness/en/soya3d/index.html
  47. http://www2.sfk.nl/svg
  48. http://twistedmatrix.com/trac/
  49. http://www.vpython.org/
  50. http://www.web2py.com
  51. http://www.wxpython.org/
  52. http://www.zope.org/


Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.