comment gérer correctement les rechargements des imports

comment gérer correctement les rechargements des imports - Python - Programmation

Marsh Posté le 04-04-2018 à 20:33:29    

Bonjour
 
Je débute en Python (mais j'ai quelques décennies d'autres langages), j'ai surtout lu et testé de ci de là pour l'instant.
Je coince un peu sur un la gestion des ré-imports quand un fichier importé a été modifiés.
Si j'ai loupé quelque chose, merci de me corriger :-)
Si on reste dans une console python, qu'on lance un .py qui a des imports puis qu'on modifie un des imports, il faut utiliser
 
importlib.reload(monImport) ...
 
Mais quand on a un gros projet et qu'on fait des modifications sur un grand nombre de fichier, c'est très relou à gérer.
A moins d'avoir dans tout les fichiers du code pour les ré-import, ce qui est lourd aussi. Mais en parcourant des gros projet, je ne trouve pas de code de ré_import.
 
C'est quoi la bonne méthode pour gérer ça ?
 
A part sortir de la console et en relancer une, car dans mon cas, j'utilise une console python intégré à Blender. C'est un peu relou de devoir sortir de blender et relancer pour tester la moindre modification.
 
Pour l'instant, je suis sur du micro projet de test avec peu de fichiers, donc ça passe encore.  
Mais le jour ou j'attaque un projet un peu volumineux, je vais pas tenir  :D

Reply

Marsh Posté le 04-04-2018 à 20:33:29   

Reply

Marsh Posté le 24-04-2018 à 12:07:51    

Bonjour,
 
La bonne méthode c'est de n'avoir jamais à faire cela...
 
Les modules python ne doivent pas être modifiables dynamiquement, je ne comprend pas trop en quoi cela sort dans ton cas, de l'exceptionnel... Mais en 20 ans de python, je n'ai jamais eu à faire cela.
 

Citation :

A part sortir de la console et en relancer une, car dans mon cas, j'utilise une console python intégré à Blender. C'est un peu relou de devoir sortir de blender et relancer pour tester la moindre modification.


 
C'est la seule et bonne solution, car en quittant la console, tu tues le processus, et ça permet de ne pas avoir de soucis... Alors je connais pas Blender, mais peut-être y a-t-il un moyen de supprimer la console en restant sur Blender, ça serait plutôt de ce côté qu'il faudrait chercher.
 

Reply

Marsh Posté le 28-07-2018 à 10:40:50    

fred1599 a écrit :

Bonjour,

 

La bonne méthode c'est de n'avoir jamais à faire cela...

 

Les modules python ne doivent pas être modifiables dynamiquement, je ne comprend pas trop en quoi cela sort dans ton cas, de l'exceptionnel... Mais en 20 ans de python, je n'ai jamais eu à faire cela.

 
Citation :

A part sortir de la console et en relancer une, car dans mon cas, j'utilise une console python intégré à Blender. C'est un peu relou de devoir sortir de blender et relancer pour tester la moindre modification.

 

C'est la seule et bonne solution, car en quittant la console, tu tues le processus, et ça permet de ne pas avoir de soucis... Alors je connais pas Blender, mais peut-être y a-t-il un moyen de supprimer la console en restant sur Blender, ça serait plutôt de ce côté qu'il faudrait chercher.

 


 

Ourch, je n'avais pas vu la réponse. Désolé et merci  :jap:

 

J'ai cherché dans les forums blender et lu beaucoup de scripts/add_on blender et c'est comme ça qu'ils font.
Et on ne peut pas supprimer la console, c'est dans celle-ci que tourne blender.

 

Pour la mise au point de petits détails, changer un constante un peu au pif, ajuster un calcul trigo que je fais un peu à l'approximation, entre 3 seconde et deux click pour tester (pas de relance blender et réimport) et 30 secondes, 25 clicks ( arret relance blender, rechargement du script dans l'éditeur interne, repasser la console en mode visible depuis les menus blender, sinon elle n'est pas visible à l'écran, relance du script), quand on fait ce test plusieurs dizaines de fois, on oublie un peu les bonnes manières pour espérer un jour arriver au résultat :D.

 

Blender, c'est bien, mais il y a pas mal de petits trucs de ci de là qui font mal. Et je pense qu'ils ont pas mal bidouillé pour implémenter le lancement des addons dynamique.

 


Dans un contexte pro sur des gros projet à des miyons de roro, je dirais comme toi que ce n'est pas la bonne méthode si on veut continuer à vivre de l'info :D
Mais la le contexte est nettement plus proche de la construction d'un petit poulailler dans le jardin que de l'édification d'un gratte ciel :D
Si je devais appliquer les normes de sécu, calcul de resistance des materiaux et méthodologie pro, les poules auront plus vite fait de le faire elles même.

 

Ceci dit, si les concepteurs du langage python ont prévu un ordre "reimport", j'imagine que ce n'était pas seulement par désœuvrement un soir de biture  [:canaille]

 

import importlib
...
...
from outils import libgeo
importlib.reload(libgeo)
...

 

et il y en a des pelletés dans les addon ou même dans le code python de blender.


Message édité par Marco Paulo le 28-07-2018 à 10:51:56
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed