Bonjour,
Je développe depuis quelques temps des applications python à usage perso et j'en ai une qui commence à prendre de l'ampleur,
Ayant un paquet de fichiers py, j'ai voulu faire du rangement et classer tout ça dans plusieurs dossiers.
Je rencontre maintenant un soucis qui est l'import de mes modules perso.
J'ai eu le réflexe de faire un import en relatif en utilisant des . et à ma surprise j'ai un message d'erreur. Voilà un exemple qui reproduit l'erreur
Je voudrais lancer une fonction contenu dans dir_b depuis un fichier file_a dans un autre dossier
antoine@Talos:~/Bureau$ tree test
test
├── dir_a
│ ├── file_a.py
│ └── __init__.py
├── dir_b
│ ├── file_b.py
│ └── __init__.py
└── __init__.py
2 directories, 5 files
antoine@Talos:~/Bureau$ cat test/dir_a/file_a.py
from ..dir_b import printb
printb()
antoine@Talos:~/Bureau$ cat test/dir_b/file_b.py
def printb():
print("b")
antoine@Talos:~/Bureau$ python3 test/dir_b/file_b.py
antoine@Talos:~/Bureau$ python3 test/dir_a/file_a.py
Traceback (most recent call last):
File "test/dir_a/file_a.py", line 1, in <module>
from ..dir_b import printb
ImportError: attempted relative import with no known parent package
antoine@Talos:~/Bureau$ cd test/dir_a/
antoine@Talos:~/Bureau/test/dir_a$ python3 file_a.py
Traceback (most recent call last):
File "file_a.py", line 1, in <module>
from ..dir_b import printb
ImportError: attempted relative import with no known parent package
je ne comprends pas cette erreur.
comment fonctionne l'import relatif ?