Ce cours est visible gratuitement en ligne.

Paperback available in this course

Ce cours existe en eBook.

Certificate of achievement available at the end this course

Got it!
Apprenez à programmer en Python

Apprenez à programmer en Python

Last updated on Monday, September 8, 2014
  • 4 semaines
  • Facile

Pour finir et bien continuer

La fin de ce cours sur Python approche. Mais si ce langage vous a plu, vous aimeriez probablement concrétiser vos futurs projets avec lui. Je vous donne ici quelques indications qui devraient vous y aider.

Ce sera cependant en grande partie à vous d'explorer les pistes que je vous propose. Vous avez à présent un bagage suffisant pour vous lancer à corps perdu dans un projet d'une certaine importance, tant que vous vous en sentez la motivation.

Nous allons commencer par voir quelques-unes des ressources disponibles sur Python, pour compléter vos connaissances sur ce langage.

Nous verrons ensuite plusieurs bibliothèques tierces spécialisées dans certains domaines, qui permettent par exemple de réaliser des interfaces graphiques.

Quelques références

Dans cette section, je vais surtout parler des ressources officielles que l'on peut trouver sur le site de Python.

Il en existe bien entendu d'autres, certaines d'entre elles sont en français. Mais les ressources les plus à jour concernant Python se trouvent sur le site de Python lui-même.

En outre, les ressources mises à disposition sont clairement expliquées et détaillées avec assez d'exemples pour comprendre leur utilité. Elles n'ont qu'un inconvénient : elles sont en anglais. Mais c'est le cas de la majeure partie des documentations en programmation et il faudra bien envisager, un jour où l'autre, de s'y mettre pour aller plus loin !

La documentation officielle

Nous avons déjà parlé de la documentation officielle dans ces pages. Nous allons maintenant voir comment elle se décompose exactement.

Commencez par vous rendre sur le site de Python.
Dans le menu de navigation, vous pourrez trouver plusieurs liens (notamment le lien de téléchargement, DOWNLOAD, sur lequel vous avez probablement cliqué pour obtenir Python). Il s'y trouve également le lien DOCUMENTATION et c'est sur celui-ci que je vous invite à cliquer à présent.

Dans la nouvelle page qui s'affiche figurent deux éléments intéressants :

  • Sous le lien DOCUMENTATION du menu, il y a à présent un sous-menu contenant les liens Current Docs, License, Help, etc.

  • La partie centrale de la page contient maintenant des informations sur les documentations de Python, classées suivant les versions. Par défaut, seules les deux versions les plus récentes de Python (dans les branches 2.X et 3.X) sont visibles mais vous pouvez afficher toutes les versions en cliquant sur le lien the complete list of documentation by Python version.

Nous allons d'abord nous intéresser au sous-menu.

Le wiki Python

Python propose un wiki en ligne qui centralise de nombreuses informations autour de Python. Si vous cliquez sur le lien Wiki dans le sous-menu, vous êtes conduits à une nouvelle page.
Il n'existe pas de version traduite du wiki, vous devez donc demander à accéder à la page d'accueil en anglais.

Une fois là, vous avez accès à une vaste quantité d'informations classées par catégories. Je vous laisse explorer si vous êtes intéressés.

L'index des PEP (Python Enhancement Proposal)

Dans ce sous-menu, vous pouvez également trouver un lien intitulé PEP Index. Si vous cliquez dessus, vous accédez à un tableau, ou plutôt à un ensemble de tableaux reprenant les PEPs classées par catégories. Comme vous pouvez le constater, il y en a un paquet et, dans ce livre, je n'ai pu vous en présenter que quelques-unes. Libre à vous de parcourir cet index et de vous pencher sur certaines des PEP en fonction des sujets qui vous intéressent plus particulièrement.

La documentation par version

À présent, revenez sur la page de documentation de Python.
Cliquez sur le lien correspondant à la version de Python installée sur votre machine (Browse Python 3.4.0 Documentation pour moi).

Sur la nouvelle page qui s'affiche sous vos yeux, vous trouvez les grandes catégories de la documentation. En voici quelques-unes :

  • Tutorial : le tutoriel. Selon toute probabilité, les bases de Python vous sont acquises ; il est néanmoins toujours utile d'aller faire un tour sur cette page pour consulter la table des matières.

  • Library Reference : la référence de la bibliothèque standard, nous reviendrons un peu plus loin sur cette page. Le conseil donné me paraît bon à suivre : Keep this under your pillow, c'est-à-dire, « gardez-la sous votre oreiller ».

  • Language Reference : cette page décrit d'une façon très explicite la syntaxe du langage.

  • Python HOWTOs : une page regroupant des documents d'aide traitant de sujets très précis, par exemple comment bien utiliser les sockets.

Vous pouvez aussi trouver un classement par index que je vous laisse découvrir. Vous pourrez y voir, notamment, le lien permettant d'afficher la table des matières complète de la documentation. Vous y trouverez également un glossaire, utile dans certains cas.

La référence de la bibliothèque standard

Vous vous êtes peut-être déjà rendus sur cette page. Je l'espère, en vérité. Elle comporte la documentation des types prédéfinis par Python, des fonctions built-in et exceptions, mais aussi des modules que l'on peut trouver dans la bibliothèque standard de Python. Ces modules sont classés par catégories et il est assez facile (et parfois très utile) de survoler la table des matières pour savoir ce que Python nous permet de faire sans installer de bibliothèque tierce.

C'est déjà pas mal, comme vous pouvez le voir !

Cela dit, il existe certains cas où des bibliothèques tierces sont nécessaires. Nous allons voir quelques-uns de ces cas dans la suite de ce chapitre, ainsi que quelques bibliothèques utiles dans ces circonstances.

Des bibliothèques tierces

La bibliothèque standard de Python comporte déjà beaucoup de modules et de fonctionnalités. Mais il arrive, pour certains projets, qu'elle ne suffise pas.

Si vous avez besoin de créer une application avec une interface graphique, la bibliothèque standard vous propose un module appelé tkinter. Il existe toutefois d'autres moyens de créer des interfaces graphiques, en faisant appel à des bibliothèques tierces.

Ces bibliothèques se présentent comme des packages ou modules que vous installez pour les rendre accessibles depuis votre interpréteur Python.

Les développeurs desdites bibliothèques ont généralement comme projet, à plus ou moins long terme, de passer leur code en Python 3.X. Si certains ont déjà franchi le pas, d'autres attendent encore et ce travail est plus ou moins long en fonction des dépendances de la bibliothèque.

Bref, tout cela évolue et si je vous dis que telle bibliothèque n'est pas compatible avec Python 3.X, il faudra entendre pour l'instant. À l'heure où vous lisez ces lignes, il est bien possible qu'une version compatible soit parue. Le changement se fait, lentement mais sûrement.

Ceci étant posé, examinons quelques bibliothèques tierces. Il en existe un nombre incalculable et, naturellement, je n'en présente ici qu'une petite partie.

Pour créer une interface graphique

Nous avons parlé de tkinter. Il s'agit d'un module disponible par défaut dans la bibliothèque standard de Python. Il se base sur la bibliothèque Tk et permet de développer des interfaces graphiques.

Il est cependant possible que ce module ne corresponde pas à vos besoins. Il existe plusieurs bibliothèques tierces qui permettent de développer des interfaces graphiques, parfois en proposant quelques bonus. En voici trois parmi d'autres :

PyQT : une bibliothèque permettant le développement d'interfaces graphiques, actuellement en version 4. En outre, elle propose plusieurs packages gérant le réseau, le SQL (bases de données), un kit de développement web… et bien d'autres choses. Soyez vigilants cependant : PyQt est distribuée sous plusieurs licences, commerciales ou non. Vous devrez tenir compte de ce fait si vous commencez à l'utiliser.

PyGTK : comme son nom l'indique, c'est une bibliothèque faisant le lien entre Python et la bibliothèque GTK / GTK+. Elle est distribuée sous licence LGPL.

wx Python : une bibliothèque faisant le lien entre Python et la bibliothèque WxWidget.

Ces informations ne vous permettent pas de faire un choix immédiat entre telle ou telle bibliothèque, j'en ai conscience. Aussi, je vous invite à aller jeter un coup d'œil du côté des sites de ces différents projets.

Ces trois bibliothèques ont l'avantage d'être multiplateformes et, généralement, assez simples à apprendre. En fonction de vos besoins, vous vous tournerez plutôt vers l'une ou l'autre, mais je ne peux certainement pas vous aider dans ce choix. Je vous invite donc à rechercher par vous-mêmes si vous êtes intéressés.

Dans le monde du Web

Il existe là encore de nombreuses bibliothèques, bien que je n'en présente ici que deux. Elles permettent de créer des sites web et concurrencent des langages comme PHP.

Django

La première, dont vous avez sans doute entendu parler auparavant, est Django.

Django est une bibliothèque, ou plutôt un framework, permettant de développer votre site dynamique en Python. Il propose de nombreuses fonctionnalités que vous trouverez, je pense, aussi puissantes que flexibles si vous prenez le temps de vous pencher sur le site du projet.

À l'heure où j'écris ces lignes, certains développeurs tentent de proposer des patches pour adapter Django à Python 3. L'équipe du projet, cependant, ne prévoit pas dans l'immédiat de développer de branche pour Python 3.

Si vous tenez réellement à Django et qu'aucune version stable n'existe encore sous Python 3 à l'heure où vous lisez ces lignes, je vous encourage à tester cette bibliothèque sous Python 2.X. Rassurez-vous, vous n'aurez pas à apprendre toute la syntaxe pour programmer dans ce langage : la liste des changements est très clairement affichée sur le site de Python et ceux-ci ne représentent pas un obstacle insurmontable pour qui est motivé !

CherryPy

CherryPy est une bibliothèque permettant de construire tout votre site en Python. Elle n'a pas la même vocation que Django puisqu'elle permet de créer la hiérarchie de votre site dynamiquement mais vous laisse libres des outils à employer pour faire quelque chose de plus complexe.

Un peu de réseau

Pour finir, nous allons parler d'une bibliothèque assez connue, appelée Twisted.

Cette bibliothèque est orientée vers le réseau. Elle prend en charge de nombreux protocoles de communication réseau (TCP et UDP, bien entendu, mais aussi HTTP, SSH et de nombreux autres). Si vous voulez créer une application utilisant l'un de ces protocoles, Twisted pourrait être une bonne solution.

Là encore, je vous invite à jeter un coup d'œil sur le site du projet pour plus d'informations. À l'heure où j'écris, Twisted n'est utilisable que sous la branche 2.X de Python. Cependant, on peut trouver une future version, en cours d'élaboration, portant Twisted sur la branche 3.X.

Pour conclure

Ce ne sont là que quelques bibliothèques tierces, il en existe de nombreuses autres, certaines dédiées à des projets très précis. Je vous invite à faire des recherches plus avancées si vous avez des besoins plus spécifiques. Vous pouvez commencer avec la liste de bibliothèques qui se trouve ci-dessus, avec les réserves suivantes :

  • Je ne donne que peu d'informations sur chaque bibliothèque et elles ne s'accordent peut-être plus avec celles disponibles sur le site du projet. En outre, la documentation de chaque bibliothèque reste et restera, dans tous les cas, une source plus sûre et actuelle.

  • Ces projets évoluent rapidement. Il est fort possible que les informations que je fournis sur ces bibliothèques ne soient plus vraies à l'heure où vous lisez ces lignes. Pour mettre à jour ces informations, il n'y a qu'une seule solution imparable : allez sur le site du projet !

Une dernière petite parenthèse avant de vous quitter : je me suis efforcé de présenter, tout au long de ce livre, des données utiles et à jour sur le langage de programmation Python, dans sa branche 3.X. Il vous reste encore de nombreuses choses à découvrir sur le langage et ses bibliothèques, mais vous êtes désormais capables de voler de vos propres ailes. Bonne route ! ;-)

Example of certificate of achievement
Example of certificate of achievement