Pages

Affichage des articles dont le libellé est Python. Afficher tous les articles
Affichage des articles dont le libellé est Python. Afficher tous les articles

mercredi 12 mai 2021

Afficher sur une carte des points géographiques issus d'un fichier CSV avec Folium

 Dans cet article : https://sti2d-sin-isn.blogspot.com/2020/02/utilisation-basique-de-folium-sous.html, je présentait Folium, excellent module de Python pour gérer des cartes géographiques et basé sur OpenStreetMap.

Je propose ici une suite. L'insertion de marqueurs à partir d'un fichier CSV.,Ici, on utilisera Pandas, autre excellent module de Python.

Voilà ce que je veux obtenir :


Ces villes n'ont pas élé choisies au hasard, non non, c'est du vécu... différents choix d'universités sur Parcoursup de Mademoiselle ;-)

Pour cet article, j'ai créé "à la main", un mini fichier CSV que voici  (à partir du site : Coordonnées GPS, latitude et longitude (coordonnees-gps.fr )


Au préalable, si vous ne les avez pas encore utilisés, donc pas installés, il faut, via la console, récupérer les deux modules. Sur Thonny, cela se fait dans le "gestionnaire de Plugins" (expliqué dans l'article ci-dessus).

Pour installer en lignes de commandes, c'est simple :

pip install folium

et 

pip install pandas

(copier-coller ces deux lignes (une à la fois, bien sûr))

Le code Python (commenté, je pense que c'est assez clair) :

Il suffit d'exécuter le script pour que le navigateur par défaut s'ouvre en affichant la carte.

Pour récupérer les fichiers sources, c'est ici !



mardi 11 mai 2021

Installation et première utilisation de Pygubu, utilitaire de création d'IHM avec Tkinter

### Article en cours de rédaction, susceptible d'être modifié/amélioré###


 Sur ce blog, il y a quelques exemples d'IHM sous Python réalisé avec Tkinter (natif à Python). 

Cet article va montrer comment créer une IHM avec un assistant, sans "trop coder". Cet assistant s'appelle Pugubu. Il permet de placer des widget sur une interface et de les configurer assez précisément puis, à l'instar de PyQt, il va générer un fichier "ui" ou un fichier complet python autonome.

Voila à quoi ressemble l'interface de Pygubu :



C'est austère, minimaliste, mais efficace !

L'installation se fait en lignes de commandes :


Pour exécuter Pygubu-designer, il suffit simplement de trouver le répertoire "script" de son installation Python, dans mon cas, c'est ici :

Je conseille fortement de faire un clic-droit "envoyer vers" et "créer un raccourci sur le bureau"...;-)


Créons maintenant notre première IHM (très basique !) :

Si maintenant j'ouvre le fichier généré dans un éditeur, comme Thonny, voilà ce que j'obtiens :


Si j'exécute le script :

Cela fonctionne !!!!
Mais...
A l'ouverture, Thonny ne reconnait pas l'encodage ! Il faut préciser ISO-8859-1. VSCode, lui, ne pose pas de question, mais l'exécution est étrange. En effet, il y a un souci avec l'accent de "première" dans le label. Je vais contacter l'auteur afin d'en savoir davantage.. Mais en modifiant l'accent, qui est mal encode, tout fonctionne. 
Cet outil est toujours en cours de développement et est mis à jour régulièrement... on peut l'excuser !
La suite à suivre....😉




samedi 8 mai 2021

Réaliser une interface graphique permettant de tracer le gain d'un filtre passe-bas avec Python

### Article en cours de rédaction, susceptible d'être modifié/amélioré (surtout amélioré ;-) )###


 Je vous propose ici une application pour Windows (en exécutable) mais transférable sur toutes les plateformes avec le fichier source .py qui permet de tracer le gain (Bode) d'un filtre passe-bas du premier ordre (RC).

L'application permet de calculer la fréquence de coupure à -3dB, d'afficher la courbe sur une échelle semi-logarithmique et de sauvegarder l'image horodatée.

Au lancement, nous avons cette interface :


Après avoir saisi les valeur du résistor et et du condensateur, on peut soit cliquer sur "calcul FC" qui affiche la fréquence de coupure à -3 dB, soit cliquer sur "Tracer gain" pour afficher la courbe :


ou :

Vous pouvez saisir un nom sans extension dans la case ci-dessus et cliquer sur "sauvegarder 'png'. Cela génèrera un fichier image identique à l'affichage et dont le nom sera horodaté :


Le fichier image est enregistré là où se trouve l'exécutable :


Bien entendu, des améliorations sont à apporter tant du point de vue technique (courbe de phase, choix passe-haut...) qu'esthétique (ce n'est toujours pas mon point fort 😆)

Pour la réalisation, j'ai utilisé Python, Matplotlib et Tkinter. L'exécutable est compilé avec auto-py-to-exe (aussi sur ce blog). L'IDE est Visual Studio Code.

Extrait du code :



Le fichier source est documenté afin de comprendre le fonctionnement global.
Je ne détaille pas davantage ici le fonctionnement et le principe, tout est dans le fichier source.


Si vous voulez le fichier source, pas de souci, il suffit de m'envoyer un courriel gentil 😇



mardi 6 avril 2021

Créer une distribution (fenêtre graphique) exécutable sous Python

 Le dernier article publié montrait la possibilité de créer un exécutable à partir d'un projet Python. Ce dernier était composé d'un fichier principal et de deux classes annexes (ici).

Cet article va maintenant proposer la création d'un exécutable mais d'une application graphique. Le script de base est celui-ci :

ou
Comme pour l'article précédent, on utilise auto-py-to-exe
Les chemins sont à personnaliser, bien entendu 😉

Après avoir tout configuré, il suffit de cliquer sur CONVERT et la magie s'opère... Cependant, il faut noter que l'opération est plus longue, il y a plus de modules à gérer..

Petit aperçu pour éviter les doutes :
J'avais prévenu, c'est long... mais tellement efficace !

Résultat :


Attention, comme pour l'article précédent, le fichier va être analysé par votre antivirus, mais pas d'inquiétude, ça passe !
Et comme précédemment, le fichier unique est lourd ! Mais cela est normal, il embarque tout le matériel nécessaire pour fonctionner.

Cadeau : l'exécutable à tester... 




lundi 5 avril 2021

Créer un exécutable TRES facilement à partir de sources Python

 Sur ce même blog, vous avez peut-être déjà vu des projets écrits en Python et distribués sous la forme d'un exécutable, comme celui-ci : http://sti2d-sin-isn.blogspot.com/2019/02/recuperer-une-donnee-sur-un-port-usb-et.html .

Quand j'ai créé cet exécutable, j'ai utilisé un module pas très pratique à manipuler, en lignes de commandes et qui plantait à chaque fois que je voulais ajouter une icône... Bref, pas idéal du tout, et pour un débutant, déroutant et pas encourageant.

Cependant, un nouvel outil est apparu depuis quelques temps et il est suffisamment stable pour que je puisse faire une démonstration, il s'agit de auto-py-to-exe :

source : https://pypi.org/project/auto-py-to-exe/ 

pour installer ce module,, il suffit de copier-coller la ligne ci-dessus dans la console :

Appuyer sur entrée et.... ça s'installe !

Si l'installation s'est bien faite, la saisie de ...
... lance l'application.



Cet écran apparaît :


Pour le moment, je vais faire simple, voire très simple (c'est le titre de l'article ;-)). Je vais montrer comment créer un exécutable à partir d'une petit projet (demande d'un de mes élèves, Hugo S., c'est son projet perso qui est pris en exemple).

Ce projet est composé de trois fichiers Python, un main et deux classes. Un fichier .ico a été ajouté pour la fonctionnalité d'icone intégrée. Cette démo est simplifiée énormément afin que tout le monde puisse comprendre.

Utilisation :

Facile, non ????

Petite remarque : le fichier unique obtenu est plus volumineux que les trois fichiers de base réunis, c'est normal, ont été ajoutés tous les éléments nécessaires au bon fonctionnement sans avoir Python installé sur la machine cible.

La prochaine fois, un exécutable mais en mode graphique (Tkinter)
Un problème ? Contactez-moi ;-)






mardi 20 octobre 2020

Mettre de la couleur dans la console Python

 Dans cet article, nous allons apprendre à afficher du texte en couleurs dans la console Python, et cela, très facilement. Pour comprendre le but de cet article, pennons ce script hyper simpliste :

Ai-je besoin de détailler ?
Le résultat en console donne cela :
Tristoune.....

Et si nous mettions de la couleur ?

Il y a deux façon de faire :
  • Encapsuler les textes à afficher dans des commandes ANSI comme ceci :
Avec ce résultat :
d'accord, c'est technique.....


  • Utiliser un module qui se nomme Colorama:
et en console :

Cette façon d'afficher en console est bien plus agréable et pratique, surtout quand on veut mettre de l'interactivité ou afficher des erreurs ou des messages importants.
Sous Thonny en mode "Python IDLE"



Bien entendu, la ligne d'import peut être celle-ci aussi  from colorama import *


Il existe aussi une autre solution, qui change légèrement la syntaxe mais pas forcément le fonctionnement,
c'est d'utiliser le module Termcolor. De ce fait, le script pourra ressembler à cela :


et en console :
Cela a l'air plus simple, cependant, je préfère la version basique de Colorama, sans Termcolor (cette dernière étant moins bien documentée et moins évidente à utiliser sous Windows).

Liens vers les sites concernés :

Vous y trouverez davantage d'informations, cet article n'était pas prévu pour être une traduction complète mais juste une découverte.
A vous de tester ;-)

Une question ? Passez par le formulaire ;-)











samedi 29 février 2020

Utilisation basique de Folium sous Python

Folium est une librairie (ou module) Python permettant de travailler en cartographie, à partir de OpenStreetMap. On peut ainsi, avec juste quelques lignes de code, afficher dans une page Web une carte avec des options.

Par exemple, ces trois lignes :

Donnent cela :

Vous ne le voyez pas, mais on est centré sur la Tour Eiffel ! Si Si !!!

Détails sur ce script :
  • ligne 1 : On importe le module folium (à condition qu'il soit déjà installé, bien sur, sinon, voir partie correspondante ci-dessous...)
  • ligne 2 : on crée la carte sous une variable en instanciant un objet et en incluant les coordonnées GPS en degrés décimaux
  • ligne 3 : on demande à folium d'enregistrer la carte "sous". Ici, c'est ma clef USB f: et dans le répertoire SNT à la racine. Pour ouvrir la carte, on clique dessus comme un raccourci Web, cela ouvre votre navigateur par défaut.
Note : Si vous utilisez Edupython, folium est déjà intégré.
 Si Folium n'est pas sur le système, voici comment faire avec Thonny (C'est la méthode PIP mais simplifiée dans Thonny)  :

Aller dans "Outils" et "Gérer les plugins" :
Cette fenêtre apparaît : En théorie, folium n'est pas dans la liste à gauche :
Saisir folium puis cliquer sur le bouton :

C'est bien ce que l'on cherche ! On clique sur "Installer" :
Et voilà ! folium est installé, on peut fermer la fenêtre !

 Il est possible de changer le zoom de la carte en ajoutant un argument lors de la création :
L'argument saisi donne un certain zoom, bien sûr, on peut le changer...


Alors, j'avais pas raison ???? C'est bien la Tour Eiffel !

Pour le montrer à la Terre entière, on va ajouter un marqueur. Cela est on ne peut plus facile !

On veut ceci :
 on saisi la ligne 3 entre la 2 et la 4 :
On a bien les mêmes coordonnées mais là, c'est pour le marqueur.
Bien sûr, on peut autant de marqueurs que l'on veut...

On peut aussi ajouter une légende au marqueur :
 Il a juste fallu changer la ligne 3 avec :


Folium permet également de tracer des itinéraires :
 Le script correspondant :


Il est possible également d'automatiser l'ouverture de la carte à l'excution du script en insérant juste deux lignes :

  •  en ligne 2, on importe le module webbrowser qui gère la navigation Web
  •  en ligne 13, on demande au module d'ouvrir le fichier HTML, avec le navigateur par défaut,  correspondant à la carte, c'est tout !
 A vous de jouer !