Page 1 of 1
IMPORT de modules personnels
Posted: Fri 5 May 2023 20:03
by Jatedjus
Bonjour,
je veux créer un programme qui sera constitué d'un main.py dans lequel j’appellerai
au début des modules personnels.py avec la syntaxe import module comme suit.
ex : main.py
import module_1
import module_2
import module_3
.....
import module_x
Je travaille sous THONNY
si je lance le programme pour test en PYTHON, ça fonctionne correctement tout peux rester dans la mémoire de mon PC ce qui est normal
vu que le PYTHON est sur mon PC.
si je lance le programme de test en MICROPYTHON avec un PICO en filaire REPL , ça ne fonctionne que si
je descend tous les modules dans le PICO en lançant le "main" sur mon PC
cela m'oblige à réécrire dans la mémoire du PICO à chaque modification d'un des modules
je comprends bien que interpréteur MICROPYTHON est sur le PICO mais est il possible de faire autrement
du moins pendant la période de développement par exemple en évitant de réécrire systématiquement sur le PICO ?
j'ai bien peur que cela soit la seule possibilité mais je vous consulte, au cas où il y aurait une autre solution par exemple en
donnant un chemin pour les modules ou autre.
cordialement JATEDJUS
Re: IMPORT de modules personnels
Posted: Wed 10 May 2023 09:18
by Dominique
Salut @jatedjus ,
Malheureusement, ton Pico n'a "naturellement" pas accès aux fichiers présents sur ton disque!
Thonny est un chouette environnement pour développer.
Personnellement, j'utilise Atom et une ligne de commande pour
MPRemote (un utilitaire officiel MicroPython).
J'utilise beaucoup les commandes `mpremote fs cp ...` (pour la copie de mes bibliothèques) et `mpremote run ...` pour exécuter mon script principal depuis mon PC (les bibliothèques sont chargées depuis le système de fichier MicroPython).
C'est comme cela que je développe ma bibliothèque
oled-menu (actuellement en cours de développement)
mpremote mount : jamais utilisé personnellement, la donc indique qu'il est possible de monter un répertoire Local sur le périphérique distant. A essayer! Par exemple en montant libdev vers le répertoire local des bibliothèque puis en modifiant sys.path pour ajouter '/libdev' aux fichiers lib a charger. Dans ce cas, il faut -bien entendu- retirer tes bibliothèques du répertoire courant
En espérant que cela ('aide.
Dominique
Re: IMPORT de modules personnels
Posted: Tue 17 Jun 2025 14:35
by Gustave
Bonjour à tous
j'ai un problème un peu identique, ce qui est évident avec les fichiers "include" dans d'autres langages ne fonctionne pas pour moi
je m'explique:
j'utilise les écrans HMI (Human Machine interface) nextion , j'ai réussi à reproduire pas mal de fonctions d'écriture et de lecture de ces écrans et je voudrait faire un fichier qui se charge avec toutes ces fonctions dans un programme.
j'utilise thonny
j'ai lu sur le net que pour créer une bibliothèque il suffisait d'enregistrer le fichier dans le même répertoire, mais quand je lance l'import cela ne fonctionne pas :
Code: Select all
from machine import UART, Pin
from utime import sleep
#import nex # to add the file nex.py
from nex import my_text, my_page
nex_comm = UART(0, 9600, parity=None, stop = 1, bits = 8, tx=Pin(0), rx=Pin(1),timeout=10)#pin0=jaune pin1=bleu du nextion
fff = b'\xff\xff\xff'
# constant
quote='"'
Green = 2016
White = 65535
Black = 0
Red = 63488
Yellow = 65504
Blue = 31
mytext= ""
my_id=""
font0=0
font1=1
font2=2
'''
def my_text(text_id, sentence):
my_id=text_id+'.txt='+quote
mytext=my_id+sentence+quote
nex_comm.write(mytext)
nex_comm.write(fff)
print (mytext)
# -- go to the page 1
npage=1
def my_page(npage):
my_page='page '+ str(npage)
nex_comm.write(my_page)
nex_comm.write(fff)
print (my_page)
'''
#---------------------------------------------------
nexbyte = 0
Flagcar = 0
len_return=0
while nexbyte<30:
if nex_comm.any():
tab_return=nex_comm.read()
#tab_return = nex_comm.read()
print(tab_return)
len_return=len(tab_return)
print (len_return)
print (list(tab_return))
my_return=list(tab_return)
print (my_return[6])
if my_return[0]>=101:
Page_id = my_return[1]
Device_id = my_return[2]
Event_id = my_return[3]
print (my_return[2])
break
else:
print ('erreur:',my_return[0])
break
sentence="It's finish"
text_id='t2'
nex.my_text(text_id, sentence)
sleep(2)
nex.my_page(1)
la console me renvoie
>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
ImportError: no module named 'nex'
ou dois-je enregistrer mon fichier nex.py ?
Merci pour votre aide
Re: IMPORT de modules personnels
Posted: Wed 18 Jun 2025 12:14
by Gustave
[résolu] après beaucoup d'essais j'ai enfin compris : mon fichier de "functions" doit être dans le répertoire racine et mes variables doivent être
global de plus l'appel de la liason UART doit être dans le fichier appelé (nex.py )ici

A très bientot !

Re: IMPORT de modules personnels
Posted: Wed 23 Jul 2025 16:54
by Dominique
Rebonjour Gustave,
Je n'ai vraiment pas été réactif sur ce coup là. Sorry.
Dominique.