[Python] Exécution du code modifié dans l'éditeur externe

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
mike63110
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 09 déc. 2014 15:03

[Python] Exécution du code modifié dans l'éditeur externe

Message par mike63110 »


La modération vous a écrit: Pour la bonne tenue de ce forum, veillez à respecter la syntaxe des balises (première lettre en majuscule puis le reste en minuscules, le tout entre crochets). Merci de corriger cette balise dans votre titre

Bonjour
J'utilise APSO 1.1.4 pour accéder à l'éditeur de code Geany.
Le code python inclus dans les fichiers LibO est copié dans un dossier temporaire avant édition. Quand j'ai modifié mon code et que je souhaite l'exécuter pour valider mes modifications, les modifications ne sont pas effectives. Je dois fermer le fichier LibO concerné après l'avoir enregistré puis le ré-ouvrir pour enfin exécuter le code modifié.
Je cherche le moyen de mettre à jour le code python qui est semble-t-il dans un tampon mémoire de LibO avec le code modifié dans mon éditeur. Y a-t-il une astuce ?
Je précise que le problème est identique pour un module python extérieur au fichier LibO. Il faut alors fermer complètement LibO (tous les fichiers ouverts) pour voir les modifications prises en compte.
Merci d'avance...
LibreOffice 5.4.6.2, Windows 7 Professionnel Service Pack 1 (Version 2.2) - Linux Mint Tara
Avatar de l’utilisateur
Dredd
Membre cOOnverti
Membre cOOnverti
Messages : 362
Inscription : 24 mai 2006 09:15
Localisation : Mega-City One

Re: [python] Exécution du code modifié dans l'éditeur extern

Message par Dredd »

Salut,

Aucune précision quant à l'OS utilisé, as-tu déjà fait une mise à jour de ta version obsolète ?
Propulsé par OpenOffice 4.1.6 sous Windows 10 x64
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [python] Exécution du code modifié dans l'éditeur extern

Message par Hubert Lambert »

Bonjour,

D'abord je te conseille de faire la mise à jour de l'extension, qui en est à la version 1.2.3 :wink: .

Concernant les scripts embarqués dans un document
Il y a une limitation qui fait que le programme ne reconnaît pas la mise à jour d'un script embarqué lorsque celui-ci est appelé par un élément de l'interface utilisateur (bouton, contrôles de formulaire, événement...). En revanche, le même script modifié exécuté à partir d'APSO s'exécutera correctement. J'ai signalé le problème en proposant une solution (https://bugs.documentfoundation.org/sho ... ?id=105609), mais ça ne bouge pas énormément jusqu'ici.

Concernant les bibliothèques externes
Ces bibliothèques sont en effet mises en cache par l'interpréteur python. Pour contourner le problème, il suffit de forcer le rechargement depuis le fichier qui l'utilise (le temps du développement) :

Code : Tout sélectionner

import ma_bibli_externe
try:
    from imp import reload
except ImportError:
    pass
reload(ma_bibli_externe)
Le fichier qui contient l'instruction "reload" doit lui-même avoir été modifié pour que le rechargement soit effectif.

Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)