Python : scripts, modules, packages et bibliothèques

Python définit et utilise un certain nombre de termes qu’il est important de connaitre. Chacun a une signification bien précise et leur utilisation ne devrait entrainer aucune ambiguïté de compréhension.

Cependant, on voit souvent une mauvaise utilisation de ceux-ci en particulier de la part de ceux qui connaissent d’autres technos. Et c’est normal car certains termes sont utilisés différemment.

Ce court article a simplement pour but de rappeler la définition des termes utilisés pour la structure de projets : sources, script, modules, packages…

Vous écrivez votre code dans des fichiers source Python. Un fichier source est un fichier texte avec une extension .py. Python identifie les fichiers source sur ces critères. Omettez par exemple l’extension, Python ignorera ce fichier.

Un script est un fichier Python destiné à être exécuté. Ce ficher peut contenir des fonctions ou des classes mais il a surtout des instructions pour faire quelque chose.

Un module est un fichier Python destiné à être importé soit dans un script soit dans d’autres modules. Un module contient donc principalement des ressources tel que des fonctions, classes ou variables destinés à être utilisées par les fichiers qui l’importent.

Si votre programme est composé de plus d’un fichier source, il faut l’organiser.

Un package est un répertoire contenant un fichier nommé __init__.py. Ce répertoire est destiné à contenir des ressources Python, c’est à dire des fichiers source ou d’autres packages. C’est aussi une structure navigable par l’interpréteur. L’interpréteur saura retrouver des ressources dans une arborescence de packages, pas dans une arborescence de répertoires.

Une bibliothèque, ou library en anglais, est un terme qui référence le code qui est en dehors de votre projet. Vous utilisez des bibliothèques pour votre projet. Vous utilisez du code de la bibliothèque standard ou d’une bibliothèque comme Numpy quand vous l’importez.

Pour finir, votre projet est simplement un répertoire. Celui-ci va contenir le package de votre programme ainsi que les autres fichiers qui le composent mais j’y reviendrai dans un autre article.

Un programme Python, est donc composé d’un script et 0, 1 ou plusieurs modules. Techniquement, il n’y aucune différence entre un script et un module sinon dans leur contenu (un module peut ne contenir que des déclaration de fonctions, classes, variables et ne rien faire). La différence sémantique est dans l’usage. D’ailleurs, pour aller plus loin, vous pouvez avoir un fichier source qui peut, dans un programme, être un script et dans un autre, un module. C’est dans ce type de fichiers source que l’on trouve l’idiome :

if __name__ == "__main__":
    ...

Le code dans ce bloc sera exécuté si le fichier source est le script (et porte le nom __main__). Importé, ce code ne sera pas exécuté.

Faites également bien attention au contraintes pour identifier fichier source et package. Beaucoup de bibliothèques Python utilisent l’introspection (la découverte de l’arborescence et du contenu du code) et ne peuvent donc naviguer que dans des packages et des sources.

Si vous avez aimé ce post, n’hésitez pas à laisser un commentaire ci-dessous ou sur la page Facebook 😉

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

Laisser un commentaire

En naviguant sur Dad 3.0, vous acceptez l’utilisation de cookies pour une navigation optimale et nous permettre de réaliser des statistiques de visites. Plus d'informations

Le blog Dad 3.0 utilise les cookies pour vous permettre une navigation optimale et nous permettre de réaliser des statistiques de visite. Dad 3.0 affichant des publicités, celles-si utilisent également des cookies pour un ciblage publicitaire. En continuant la navigation sur Dad 3.0, vous acceptez le dépôt et la lecture de cookies.

Fermer