Le groupe Python

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à : navigation, rechercher
Accueil - Python

Accueil - Installation - Premiers pas - PyQtGraph - Raspberry Pi

Nuvola apps edu miscellaneous.png Introduction

Vous êtes tous les bienvenus pour partager et échanger autour du langage de programmation Python.


La mise en place de ce groupe doit permettre aux électroniciens de notre réseau de mutualiser leurs efforts de développement en partageant leurs bibliothèques de programmes et leurs savoir-faire.

Cela peut ce faire de manière autonome, en participant à enrichir le SVN et le Wiki, pour ça il vous suffit d'avoir simplement vos identifiants et c'est tout. La participation est libre dans la mesure où le travail de chacun est respecté. Les Internautes pourront suivre le contenu de ce Wiki et profiter des nombreux documents libres, leurs remarques peuvent être envoyées par mail à l'animateur du groupe ;-)

Pour les électroniciens du réseau RdE, n'hésitez pas a vous connecter sur le chat IRC, pour discuter ou pour demander de l'aide.

>>> Salon de discussion IRC: /join #cafe <<<

Vous pouvez aussi demander une collaboration sur votre projet ou pour vous aider à mettre en place une nouvelle démo ou un tutoriel.

Contacter l'animateur du Groupe Python par mail

Nuvola apps ksim.png C'est quoi ce langage de programmation ?

Qui n'a pas entendu parler de Python ? Il date de 1991. Python est un langage de programmation orienté objet, puissant, riche et facile à apprendre/comprendre. Il est installé par défaut sur tous les ordinateurs disposant d'un noyaux UNIX. Il est donc nécessaire de l'installer si vous travaillez sous Windows.

De base, Python dispose d'un certain nombre de fonctionnalités que l'on peut étendre en ajoutant des paquets/modules que l'on peut trouver sur le web ou en les programmant nous-même. Sur le web, il y a le site PyPI - the Python Package Index et ces modules ou paquets peuvent être directement installé par la commande pip install nomDuModule.

C'est quoi cette commande pip install nomDuModule ?

Pip est un système de gestion de paquets utilisé pour installer et gérer des librairies écrites en Python. Pip empêche les installations partielles en annonçant toutes les exigences avant l'installation. Cette commande est à utiliser dans un terminal sous UNIX ou un command prompt sous Windows.

Revenons à ces extensions disponibles pour Python. Plusieurs bibliothèques peuvent ainsi être installées pour, par exemple, développer des interfaces graphiques en Python (ex de module : pyqtgraph disponible sur le site de PyPi. Ce module s'installe avec la commande pip install pyqtgraph.

Que peut-on faire avec Python ?

De petits programmes très simples, appelés scripts, chargés d'une mission très précise sur votre ordinateur ; des programmes complets, comme des jeux, des suites bureautiques, des logiciels multimédias, des clients de messagerie… des projets très complexes, comme des progiciels (ensemble de plusieurs logiciels pouvant fonctionner ensemble, principalement utilisés dans le monde professionnel). Voici quelques-unes des fonctionnalités offertes par Python et ses bibliothèques :

- créer des interfaces graphiques ; - faire circuler des informations au travers d'un réseau ; - dialoguer d'une façon avancée avec votre système d'exploitation ; - … et j'en passe… Bien entendu, vous n'allez pas apprendre à faire tout cela en quelques minutes. Mais si on partage des briques de fonctionnalités, vous serez plus efficaces ;)

Un langage de programmation interprété

Eh oui, vous allez devoir patienter encore un peu car il me reste deux ou trois choses à vous expliquer, et je suis persuadé qu'il est important de connaître un minimum ces détails qui peuvent sembler peu pratiques de prime abord. Python est un langage de programmation interprété, c'est-à-dire que les instructions que vous lui envoyez sont « transcrites » en langage machine au fur et à mesure de leur lecture. D'autres langages (comme le C / C++) sont appelés « langages compilés » car, avant de pouvoir les exécuter, un logiciel spécialisé se charge de transformer le code du programme en langage machine. On appelle cette étape la « compilation ». À chaque modification du code, il faut rappeler une étape de compilation.

Les avantages d'un langage interprété sont la simplicité (on ne passe pas par une étape de compilation avant d'exécuter son programme) et la portabilité (un langage tel que Python est censé fonctionner aussi bien sous Windows que sous Linux ou Mac OS, et on ne devrait avoir à effectuer aucun changement dans le code pour le passer d'un système à l'autre). Cela ne veut pas dire que les langages compilés ne sont pas portables, loin de là ! Mais on doit utiliser des compilateurs différents et, d'un système à l'autre, certaines instructions ne sont pas compatibles, voire se comportent différemment.

En contrepartie, un langage compilé se révélera bien plus rapide qu'un langage interprété (la traduction à la volée de votre programme ralentit l'exécution), bien que cette différence tende à se faire de moins en moins sentir au fil des améliorations. De plus, il faudra installer Python sur le système d'exploitation que vous utilisez pour que l'ordinateur puisse comprendre votre code.

Différentes versions de Python

Lors de la création de la Python Software Foundation, en 2001, et durant les années qui ont suivi, le langage Python est passé par une suite de versions que l'on a englobées dans l'appellation Python 2.x (2.5, 2.6, 2.7). Depuis le 13 février 2009, la version 3.0.1 est disponible. Cette version casse la compatibilité ascendante qui prévalait lors des dernières versions.

Compatibilité quoi ? Quand un langage de programmation est mis à jour, les développeurs se gardent bien de supprimer ou de trop modifier d'anciennes fonctionnalités. L'intérêt est qu'un programme qui fonctionne sous une certaine version marchera toujours avec la nouvelle version en date. Cependant, la Python Software Foundation, observant un bon nombre de fonctionnalités obsolètes, mises en œuvre plusieurs fois… a décidé de nettoyer tout le projet. Un programme qui tourne à la perfection sous Python 2.x devra donc être mis à jour un minimum pour fonctionner de nouveau sous Python 3.

Ceci étant posé, tous à l'installation ! => Installation

Nuvola apps edu miscellaneous.png Interface Graphique

Pour réaliser des interfaces graphiques en python, je vous propose d'utiliser QtDesigner. Ce logiciel est associé au framework Qt et permet de dessiner une interface graphique. Associé au module pyqtgraph, vous aurez ainsi tous les éléments pour visualiser vos données en temps réel. Le module pyqtgraph ne vous servira qu'à l'affichage de courbe et 3D dans une interface graphique issue du framework Qt.

Ceci étant posé, tous à l'installation ! => Installation

Farm-Fresh plenum.png Action du groupe de travail

Interface microcontrôleur PIC32 et IHM Python

Projet Pulse Generator

Formation Python pour électroniciens et instrumentalistes

Nuvola filesystems folder.png Organisation des répertoires sur le SVN

Un travail est actuellement entrepris pour archiver les répertoires ci-dessous dans la zone de téléchargement et renouveler la racine du svn "gt_python" (https://outils.electroniciens.cnrs.fr/gt_python), si vous souhaitez y participer contacter l'animateur du groupe.

   gt_python
       |
       +--- ça va bientôt arriver ;)

Pour plus de renseignement sur l'organisation des dossiers dans le SVN, voir les recommandations sur la page Premiers pas.


Si vous souhaitez contribuer au groupe Python du Réseau des Électroniciens et que vous avez besoin d'un peu d'assistance, vous pouvez contacter l'animateur du groupe Christophe Halgand.

Des formations sur mesure de différents niveaux peuvent aussi être organisées dans le cadre du réseau des électroniciens, pour cela il suffit d'en faire la demande auprès de votre comité de pilotage régional/national ou de votre service de formation permanente.


Merci à tous et bon développement ;-)