126 votes

Quelle est la différence entre un module et une bibliothèque en Python ?

J'ai des compétences en Java et je débute en Python. Je veux m'assurer de bien comprendre la terminologie Python avant de continuer.

Ma compréhension d'un module est : un script qui peut être importé par de nombreux autres scripts, pour faciliter la lecture. Tout comme en Java, où vous avez une classe qui peut être importée par de nombreuses autres classes.

Ma compréhension d'une bibliothèque est : une bibliothèque contient de nombreux modules qui sont séparés par leur utilisation.

Ma question est : Les bibliothèques sont-elles comme des packages, où vous avez un package appelé par exemple food, ensuite :

  • chocolate.py
  • sweets.py
  • biscuts.py

sont contenus dans le package food ?

Ou est-ce que les bibliothèques utilisent des packages, donc si nous avions un autre package drink :

  • milk.py
  • juice.py

contenus dans le package. La bibliothèque contiendrait-elle deux packages ?

De plus, une interface de programmation d'application (API) contient généralement un ensemble de bibliothèques, est-ce en haut de la hiérarchie :

  1. API
  2. Bibliothèque
  3. Package
  4. Module
  5. Script

Donc une API consisterait en tout du 2 au 5 ?

110voto

Bakuriu Points 22607

De Le tutoriel Python - Modules

  • Module:

    Un module est un fichier contenant des définitions et des instructions Python. Le nom du fichier est le nom du module auquel est ajouté le suffixe .py.

  • Paquet:

    Les paquets sont une façon de structurer l'espace de noms des modules Python en utilisant des "noms de modules pointés".

Si vous lisez la documentation pour la import statement qui donne plus de détails, par exemple:

Python n'a qu'un seul type d'objet module, et tous les modules sont de ce type, que le module soit implémenté en Python, en C ou autre chose. Pour aider à organiser les modules et fournir une hiérarchie de nommage, Python a un concept de paquets.

Vous pouvez penser aux paquets comme aux répertoires sur un système de fichiers et aux modules comme des fichiers au sein des répertoires, mais ne prenez pas cette analogie trop littéralement car les paquets et les modules ne doivent pas nécessairement provenir du système de fichiers. Pour les besoins de cette documentation, nous utiliserons cette analogie pratique de répertoires et de fichiers. Comme les répertoires du système de fichiers, les paquets sont organisés de manière hiérarchique et les paquets peuvent contenir eux-mêmes des sous-paquets, ainsi que des modules réguliers.

Il est important de garder à l'esprit que tous les paquets sont des modules, mais tous les modules ne sont pas des paquets. Ou autrement dit, les paquets sont juste un type spécial de module. Spécifiquement, tout module contenant un attribut __path__ est considéré comme un paquet.

Par conséquent, le terme module fait référence à une entité spécifique : c'est une classe dont les instances sont les objets module que vous utilisez dans les programmes Python. Il est également utilisé, par analogie, pour désigner le fichier dans le système de fichiers à partir duquel ces instances "sont créées".

Le terme script est utilisé pour faire référence à un module dont le but est d'être exécuté. Il a la même signification que "programme" ou "application", mais il est habituellement utilisé pour décrire des programmes simples et petits (c'est-à-dire un seul fichier avec au plus quelques centaines de lignes). Écrire un script prend quelques minutes ou quelques heures.

Le terme bibliothèque est simplement un terme générique pour un ensemble de code conçu dans le but d'être utilisé par de nombreuses applications. Il fournit une fonctionnalité générique qui peut être utilisée par des applications spécifiques.

Lorsqu'un module/paquet/autre est "publié", les gens se réfèrent souvent à lui comme une bibliothèque. Souvent, les bibliothèques contiennent un paquet ou plusieurs paquets connexes, mais cela pourrait même être un seul module.

Les bibliothèques ne fournissent généralement aucune fonctionnalité spécifique, c'est-à-dire que vous ne pouvez pas "exécuter une bibliothèque".

L'API peut avoir différentes significations selon le contexte. Par exemple:

  • il peut définir un protocole comme le API DB ou le protocole de buffer.
  • il peut définir comment interagir avec une application (par exemple, le Python/C API)
  • lorsqu'il est lié à une bibliothèque/paquet, il s'agit simplement de l'interface fournie par cette bibliothèque pour sa fonctionnalité (ensemble de fonctions/classes/constantes, etc.)

Dans tous les cas, une API n'est pas du code Python. C'est une description qui peut être plus ou moins formelle.

48voto

Kimvais Points 12453

Seuls package et module ont une signification bien définie spécifique à Python.

  1. Une API n'est pas une collection de code per se - c'est plus comme une spécification de "protocole" sur la manière dont différentes parties (généralement des bibliothèques) communiquent entre elles. Il existe quelques APIs "standard" notables en python. Par exemple, la DB API

  2. À mon avis, une bibliothèque est tout ce qui n'est pas une application - en python, une bibliothèque est un module - généralement avec des sous-modules. La portée d'une bibliothèque est assez variable - par exemple, la bibliothèque standard de python est vaste (avec plusieurs sous-modules) tandis qu'il y a beaucoup de bibliothèques à usage unique dans le PyPi, par exemple, un rétroportage de collections.OrderedDict pour py < 2.7

  3. Un package est une collection de modules python sous un espace de noms commun. En pratique, il est créé en plaçant plusieurs modules python dans un répertoire avec un module (fichier) __init__.py spécial.

  4. Un module est un seul fichier de code python censé être importé. C'est un peu simplifié car en pratique, quelques modules détectent quand ils sont exécutés en tant que script et font quelque chose de spécial dans ce cas.

  5. Un script est un seul fichier de code python destiné à être exécuté comme programme 'principal'.

  6. Si vous avez un ensemble de code qui s'étend sur plusieurs fichiers, vous avez probablement une application au lieu d'un script.

6voto

premraj Points 120

Bibliothèque : Il s'agit d'une collection de modules.

(La bibliothèque contient soit des modules intégrés (écrits en C) + des modules écrits en python).

Module : Chacun d'un ensemble de parties normalisées ou d'unités indépendantes qui peuvent être utilisées pour construire une structure plus complexe.

En termes informels, un module est un ensemble de lignes de code utilisées dans un but spécifique et pouvant être utilisées dans d'autres programmes telles quelles, pour éviter la répétition en équipe et se concentrer sur les exigences principales. source

API est une interface pour d'autres applications pour interagir avec votre bibliothèque sans avoir un accès direct.

Package est essentiellement un répertoire avec des fichiers.

Script signifie une série de commandes dans un seul fichier.

1voto

Mizat Points 1

Je vais essayer de répondre à cela sans utiliser les termes les plus simples, et expliquer pourquoi ou comment ils sont utilisés différemment, ainsi que l'utilisation la plus "officielle" et/ou la plus comprise ou uniforme des termes.

Cela peut être déroutant, et je me suis moi-même embrouillé en y réfléchissant trop, donc ne réfléchissez pas trop. Quoi qu'il en soit, le contexte est très important.

Bibliothèque- Se réfère le plus souvent à la bibliothèque générale ou à une autre collection créée avec un format et une utilisation similaires. La Bibliothèque Générale est la somme des Modules 'standard', populaires et largement utilisés, qui peuvent être considérés comme des outils sous forme de fichiers individuels, pour le moment ou des raccourcis rendant les choses possibles ou plus rapides. La bibliothèque générale est une option que la plupart des gens activent lors de l'installation de Python. Parce qu'elle porte ce nom "Python General Library", elle est souvent utilisée avec une structure et des idées similaires. C'est simplement pour avoir une série de Modules, voire même des packages regroupés, généralement dans une liste. La liste est généralement pour les télécharger. Généralement, il s'agit simplement de fichiers liés, avec des intérêts similaires. C'est la manière la plus simple de le décrire.

Module- Un Module fait référence à un fichier. Le fichier contient un script et le nom du fichier est le nom du module, les fichiers Python se terminent par .py. Tout ce que contient le fichier est du code qui, lorsqu'il est exécuté ensemble, produit quelque chose, en utilisant des fonctions, des chaînes, etc. Les modules principaux que vous voyez probablement le plus souvent sont populaires car ce sont des modules spéciaux qui peuvent obtenir des informations à partir d'autres fichiers/modules. C'est déroutant car le nom du fichier et du module sont égaux et il suffit de supprimer le .py. En réalité, c'est juste du code que vous pouvez utiliser comme raccourci écrit par quelqu'un pour rendre quelque chose plus facile ou possible.

Package- Ce terme est parfois utilisé de manière générale, bien que le contexte fasse une différence. L'utilisation la plus courante d'après mon expérience est celle de plusieurs modules (ou fichiers) regroupés ensemble. Les raisons pour lesquelles ils sont regroupés peuvent être diverses, c'est là que le contexte est important. Voici comment j'ai remarqué que les termes package(s) sont utilisés. Il s'agit d'un groupe de modules téléchargés, créés et/ou stockés. Ce qui peut tous être vrai, ou seulement 1, mais en réalité, il s'agit simplement d'un fichier qui fait référence à d'autres fichiers, qui doivent être dans la structure ou le format correct, et cette somme totale est le package lui-même, installé ou peut avoir été inclus dans la bibliothèque générale de Python. Un package peut contenir des modules (fichiers .py) car ils dépendent les uns des autres et peuvent parfois ne pas fonctionner correctement, voire pas du tout. Chaque partie (module/fichier) d'un package a toujours un objectif commun, et la somme totale de toutes les parties constitue le package lui-même.

Le plus souvent en Python, les packages sont des modules, car le nom du package est le nom du module qui est utilisé pour relier toutes les pièces. Vous pouvez donc entrer un package car c'est un module, ce qui permet également d'appeler d'autres modules, qui ne sont pas des packages car ils ne font qu'une certaine fonction ou tâche qui n'implique pas d'autres fichiers. Les packages ont un objectif, et chaque module travaille ensemble pour atteindre cet objectif final.

La plupart de la confusion vient d'un simple nom de fichier ou d'un préfixe de fichier, utilisé comme nom de module, puis de nouveau comme nom de package.

Rappelez-vous que les Modules et les Packages peuvent être installés. La Bibliothèque est généralement un terme générique pour lister ou formater un groupe de modules et packages. Tout comme la bibliothèque générale de Python. Une hiérarchie ne fonctionnerait pas, les APIs n'appartiennent pas vraiment à cela, et, si vous le faites, elles pourraient être n'importe où et impliquer des Scripts, Modules et Packages, le mot bibliothèque étant un mot aussi général, facilement applicable à de nombreuses choses, ce qui permet aux APIs de se positionner au-dessus ou en dessous. Certains Modules peuvent être basés sur d'autres codes, et c'est le seul moment où je pense cela serait lié à une discussion purement Python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X