Magazine High tech

Apprendre Python – Partie 4 – Premier logiciel complet

Publié le 06 mai 2012 par Psyphi

Dans cet article, je vais passer en revue rapidement les étapes pour réaliser son premier vrai programme python. Je n’entrerai pas trop dans les détails techniques, sachez déjà que le code est open-source et publié sous licence GPL v2 à cette adresse: https://sourceforge.net/p/reqext/code/10/tree/trunk%20reqext-code/RequirementsExtractor/

Par les mots logiciel« vrai et complet », j’entends qu’il n’est pas seulement question d’écrire un script rapide, mais d’avoir un logiciel utilisable par un utilisateur lambda avec:
  • Une interface utilisateur: pyside
  • Facilement distribuable et ne nécessitant pas l’installation préalable de Python: pyinstaller
et qui puisse être facilement complété par d’autres contributeurs:
  • Utilisation d’une plateforme d’hébergement: sourceforge
  • Un système de gestion de version: SVN
  • Et sans doute le plus important, une documentation technique expliquant brièvement l’architecture et la conception du programme: Requirements_Extractor_Architecture.odt
Venons-en à la description du logiciel. Ce dernier est très simple, il doit analyser un document Word et en extraire les exigences dans un fichier excel, d’où son nom « Requirements Extractor ». La reconnaissance des exigences se fait grâce à une expression régulière entrée par l’utilisateur, afin que le logiciel soit capable de reconnaître les identifiants d’exigence. Pour rappel, nous avions vu dans le dernier article sur python, comment se connecter au document Microsoft Office avec la libraire pywin32. Voici un schéma d’entrées/sorties du programme: Apprendre Python – Partie 4 – Premier logiciel complet L’utilisateur doit être capable de:
  • Renseigner le document Word en entrée
  • Renseigner une expression régulière pour la reconnaissance des identifiants d’exigences
  • Renseigner le chemin et le nom du fichier Excel de sortie
  • Lancer l’extraction des exigences
  • Connaitre l’état d’avancement du programme
Apprendre Python – Partie 4 – Premier logiciel complet A la vue des besoins des utilisateurs, on en déduit que l’interface utilisateur peut être très simple et se réduire à une seule fenêtre. Pour créer une interface utilisateur rapidement, je conseille l’utilisation d’un outil de construction d’interface graphique (GUI builder). Le choix de l’interface graphique et du GUI Builder se fait en fonction de :
  • La technologie d’interface utilisateur disponible pour votre langage de programmation. En python il y en a plusieurs: Tkinter, WxWidget, Gtk+, Qt…
  • La technologie que vous maîtrisez le mieux
  • La licence de votre logiciel, par exemple la bibliothèque PyQt ne vous permettra pas de vendre votre logiciel sans verser une redevance à Riverbank Computing, l’entreprise qui l’édite.
Grand fan de Qt, j’ai choisi: pyside  et QtDesigner. Pyside est un binding Qt pour Python, ce qui veut dire qu’il permet l’utilisation de la librairie Qt, programmé originellement en C++, depuis du code Python. QtDesigner est un GUI Builder pour modéliser des interfaces utilisateurs de logiciel PC. Les fichiers QtDesigner, qui se terminent par l’extension « .ui », sont en fait des fichiers XML qui contiennent la description des éléments graphiques. Il est possible d’en générer des classes python, grâce à l’outil pyside-uic livré avec pyside. Apprendre Python – Partie 4 – Premier logiciel complet Une fois la classe python pour le widget générée, il faut l’interfacer avec le coeur du programme. Pour cela,  il existe déjà divers patrons de conception. J’ai personnellement utilisé l’architecture Model View Controller (MVC):
  • Model: la collection de données pour la communication entre l’utilisateur et le programme.
  • View: la représentation graphique, l’interface utilisateur.
  • Controller: la logique graphique, détecte les entrées utilisateur, met à jour l’interface graphique et les données du Model.
Apprendre Python – Partie 4 – Premier logiciel complet L’implémentation que j’en ai faite, est personnelle et adaptée à la taille du projet. Pour être plus propre, il aurait fallu séparer le Model dans une classe dédiée. Néanmoins, voici le diagramme de classe de mon application. Apprendre Python – Partie 4 – Premier logiciel complet Une fois l’implémentation terminée, il ne reste plus qu’à le distribuer. Malheureusement, un logiciel python ne se distribue pas aussi simplement (auprès de non informaticiens) qu’un logiciel écrit en C et compilé. Comme ils sont interprétés, les programmes python ont besoin que l’interpréteur python soit installé sur la machine sur laquelle il s’exécute. C’est rarement le cas sur des machines Windows. Pour résoudre ce problème, il existe divers outils qui permettent d’empaqueter vos fichiers python dans un seul .exe et de l’accompagner des librairies nécessaires à son bon fonctionnement. Les deux plus connus sont py2exe et pyinstaller. Après avoir essayé les deux, j’ai opté pour pyinstaller qui me semble être plus simple et plus à jour. Je ne décrirai pas l’utilisation de pyinstaller, elle est très simple, il suffit de lire le fichier README.txt fourni avec le logiciel.

Retour à La Une de Logo Paperblog

A propos de l’auteur


Psyphi 1784 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte