Mis a jour le 2026-10-31, 14:43

Packages

Package : collection de modules qui sont contenus dans un même directory ou même une arborescence..
On suppose qu'on a un arborescence qui se trouve dans le path :
myPackage/myModule1.py
myPackage/__init__.py
myPackage/myModule2.py
myPackage/mySubPackage
myPackage/mySubPackage/__init__.py
myPackage/mySubPackage/myModule3.py
  
On peut faire :
  • import myPackage.myModule1, alors on peut faire myPackage.myModule1.myFunc si myFunc est une fonction de myModule1.py
  • from myPackage import myModule1, alors on peut faire myModule1.myFunc
  • from myPackage.myModule1 import myFunc, alors on peut utiliser directement myFunc
  • from myPackage.mySubPackage import myModule3, alors on peut utiliser myModule3.myFunc2 si myFunc2 y est définie
  • on ne peut pas faire myPackage.myModule1.myFunc : le dernier élément dans un import doit être un package ou un module.
  • si on fait from myPackage import * : les modules importés sont ceux définis dans la variable __all__ de __init__.py (par exemple, __all__ = ['myModule1'])
  • l'import du package exécute son __init__.py
  • on peut dans un module importer un autre module du package :
    • soit avec une référence absolue, par exemple dans myModule1 : from myPackage.mySubPackage import myModule3
    • soit avec une référence relative, par exemple dans myModule1 : from . mySubPackage import myModule3
    • ou si il faut remonter, par exemple dans myModule3 : from .. import myModule2
Pour savoir où se trouve un package avec tout le chemin, par exemple le package numpy : faire python -c 'import numpy; print(numpy.__path__)'.
Import d'un module dans une fonction, mais de façon à ce qu'il soit quand même défini globalement (sinon, défini seulement dans la fonction) :
def myFunc():
  global numpy
  import numpy
  
Pour supprimer les warnings :
  • pour supprimer tous les warnings :
    import warnings
    warnings.filterwarnings("ignore")
        
  • pour supprimer les warnings avec un message particulier : warnings.filterwarnings("ignore", message=".*The 'nopython' keyword.*")
Pour enlever les FutureWarnings : from warnings import simplefilter; simplefilter(action = 'ignore', category = FutureWarning)

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert