Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/05/2022, à 22:38

alex2423

[python] Quelle biblio pour faire des IHM simple pour ses scripts

Hello tout le monde,

Au boulot, je fais parfois des taches répétitives pour faire de la maintenance des applications métiers.
L'application AA envoie des données à l'application AB.  (AA ==> AB)
Ils arrivent que les utilisateurs m'informent qu'ils ne retrouvent pas leurs données sur l'application AB. Je fais donc un certain nombre de vérifications pour savoir à quel niveau le problème est présent. Et si besoin de relance le flux manuellement.

Cela résume donc :
1./ vérifier des données sur des bases de données différente sur Oracle, si l'ID est présent dans la table TA, la table TB et la table TC
2./ Et si absent, relance du flux

Je ne sais pas pour vous, je trouve cela assez énervant de faire des choses répétitives. Je me suis dit pourquoi pas faire une petite boite à outil de supervision, et qui plus est en IHM, plus sympa par la suite à utiliser que de le lancer en ligne de commande, d'autant plus sous Windows (boulot oblige malheureusement).

Bref ma question, quelle librairie utilisez vous pour vos petits outils au boulot pour vous simplifier la vie ?

J'ai pu noter les librairies suivantes :
- Tkinter, la librairie de base mais est très limité en terme de widget dispo
- wxPython un grand nombre de widget mais demande un apprentissage long

Comparatif des 2 librairies : https://sebsauvage.net/python/gui/index … r_wxpython

mais il y aurait d'autre :
tel que PyQt5 mais étant donné que c'est pour le boulot, donc Windows, utiliser du QT n'est pas le mieux.
- Kivy

Laquelle choisissez vous et pourquoi ?

Hors ligne

#2 Le 04/05/2022, à 07:45

Vobul

Re : [python] Quelle biblio pour faire des IHM simple pour ses scripts

Salut,

Bon déjà, après 20 ans de linux, tu me fais découvrir le terme "IHM" que je ne connaissais pas. On en apprend tous les jours smile Pour les autres comme moi : GUI.

Après pour ce qui est du débat GUI/CLI, je ne suis pas de ton avis mais on s'en fout, tu n'es pas moi, je ne suis pas toi. Je préfère un truc en CLI mais ça me regarde. Pour avoir moi-même créé des applications assez complexes en python avec Tkinter, franchement je recommande moyen (d'ailleurs à la fin je n'utilisais plus le GUI que j'avais fait pour les collègues, mais uniquement l'interface CLI, tellement plus simple quand tu veux re-lancer la même analyse, plutôt que d'avoir à cliquer 10 fois...).

Donc pose-toi la question déjà si ça vaut vraiment le coup de s'investir dans un truc en GUI pour un outil perso. Et si la réponse est oui car t'aimes bien cliquer, regarde peut-être la possibilité d'utiliser une interface web. Je ne retrouve plus l'image que j'ai vu passer y'a pas longtemps, mais en gros c'était une interface web (HTML + Javascript) avec plein de graphes et super jolie, réalisée en 5 minutes, et une interface Qt réalisée en 5 jours, toute pourrie ^^

Si tu dois query des bases de données, ça fait sens d'utiliser une page web pour ça, non ? En plus ça te fait une interface graphique portable, utilisable partout, sans soucis de versions ou compatibilités. Bref, je n'y vois que des avantages. Pour le backend utilise ton langage préféré, python, php, ruby, ce que tu préfères.

Après pour le use case que tu décris, perso j'aurai sur le server A un script "fix-shit.sh" qui ferait automatiquement les check et tout. Voir-même il pourrait tourner en cronjob. Donc pas besoin d'interface, pas besoin d'intervention humaine. Un bon sysadmin automatise ses tâches (vu que j'imagine que fixer l'app métier n'est pas forcément possible) wink


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 04/05/2022, à 09:27

Compte supprimé

Re : [python] Quelle biblio pour faire des IHM simple pour ses scripts

Bonjour,

- Tkinter, la librairie de base mais est très limité en termes de widget dispo

Perso je ne dirais pas ça,  il y a quand même de quoi faire. (Tu peux même réaliser des jeux/animations graphiques avec tkinter.canvas)

J'ai choisi cette bibliothèque, car elle est légère, installée par défaut, bien documentée, et s'apprend relativement rapidement(il faut beaucoup plus de temps pour appréhender Qt).)

Dernière modification par Compte supprimé (Le 04/05/2022, à 09:29)

#4 Le 04/05/2022, à 10:10

iznobe

Re : [python] Quelle biblio pour faire des IHM simple pour ses scripts

Bonjour , je ne comprends pas vraiment la demarche que tu choisis de faire , probablement parceque je sais pas faire ce que tu fais et que je sais pas non plus comment est faite cette partie là :

alex2a23 a écrit :

L'application AA envoie des données à l'application AB.  (AA ==> AB)

Ce que je ferais , si c ' est possible , c ' est que dans la fameuse partie ci-dessus , j ' integrerais un mecanisme de controle .
apres envoie des données , lecture de la BBD pour verifier que les données sont bien presentes et enregistrees dans la BDD .
si ce n' est pas le cas , ben evidemment je reitere l' envoie des données .

pourquoi se compliquer la vie plus que ca ?

Dernière modification par iznobe (Le 04/05/2022, à 10:12)


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#5 Le 04/05/2022, à 21:50

alex2423

Re : [python] Quelle biblio pour faire des IHM simple pour ses scripts

Salut tout le monde !!!

Vobul, lors de ma dernière mission, on utilisait souvent le terme d'IHM, j'ai donc fini par l'adopter même sur ma mission actuelle. Et puis lorsque tu es en contact avec des utilisateurs finaux, c'est quand mieux de parler d'IHM, d'utiliser un acronyme en français, c'est plus parlant pour eux.
A contrario, je ne pensais pas que c'était pas mal utilisé le terme GUI. je l'avais oublié smile

Non, c'est toujours intéressant d'avoir l'opinion des autres si ce n'est pas imposé. Cela permet parfois de se remettre en question. J'essai d'être ouvert au dialogue. Et après réflexion, tu as peut-être raison. Je vais rester en ligne, potasser les passages de paramètres en ligne de commande en Python.
Et si j'ai vraiment envie d'une GUI wink je ferai un front-end mais avant tout, mieux avoir un script solide en CLI sur lequel se baser, comme la plus part sous Linux (à contrario de Windows) 


Vobul a écrit :

Après pour le use case que tu décris, perso j'aurai sur le server A un script "fix-shit.sh" qui ferait automatiquement les check et tout. Voir-même il pourrait tourner en cronjob. Donc pas besoin d'interface, pas besoin d'intervention humaine. Un bon sysadmin automatise ses tâches (vu que j'imagine que fixer l'app métier n'est pas forcément possible) wink

A mon ancienne mission, l'application que je maintenais, était sur des serveurs Linux/Unix en 3 tiers mais malheureusement, sur ma mission actuelle, les serveurs sont du full Windows. Ils se sont fait corrompre par MS sad. Et puis je n'ai même pas accès au FS du serveur des BDD. Je suis dorénavant plus proche des utilisateurs mais moins de visibilité sur les serveurs sad

C'est pourquoi, je n'ai pas le choix, mes scripts doivent être coté client sur mon PC.


@MPython Alaplancha, mua culpa, j'ai pu lire qu'il y a eu de grosse évolution sur Tkinter sur les nouvelles versions, avec un gros ajout de Widget. En effet Thinker a l'air d'être une chouette option d'autant plus avec la documentation très fournie . Si je dois en choisir, je resterai sur le "standard" Python.

iznobe a écrit :

Ce que je ferais , si c ' est possible , c ' est que dans la fameuse partie ci-dessus , j' integrerais un mecanisme de controle .
apres envoie des données , lecture de la BBD pour verifier que les données sont bien presentes et enregistrees dans la BDD .
si ce n' est pas le cas , ben evidemment je reitere l' envoie des données .

pourquoi se compliquer la vie plus que ca ?

iznobe, si je comprends bien, ta question reviendrait pourquoi faire une rustine au lieu de corriger le problème à la source, de demander à faire des contrôles pour avoir une production de donnée de meilleure qualité.

Je suis d'accord avec toi, ce serait l'idéal. Mais chez les grands comptes, pour faire bouger les choses, c'est long, laborieux, il faut revoir les spec, refaire des recettes et ... 

Après le but de mes scripts serait de faire une boite à outil pour y faire quelques contrôles rapides au lieu de lancer les requêtes SQL à la main comme fait mes collègues, de sélectionner telle ou telle base. Je suis un peu fainéant smile
Et puis après l'excuse est aussi de refaire un peu de dev roll. Et je trouve cela génial l'idée de faire ses propres outils.

Hors ligne