Python >> Tutoriel Python >  >> Python

Différence entre les modules Python, les packages, les bibliothèques et les frameworks

Si vous débutez avec Python, vous pourriez être confus à propos de toutes ses bibliothèques, packages, modules et frameworks. D'après le contexte, vous pouvez généralement comprendre qu'il s'agit de morceaux de code. Mais quelle est la différence entre eux? Dans cet article, j'expliquerai la différence entre les modules, les packages, les bibliothèques et les frameworks Python en termes simples.

Les programmes du monde réel sont complexes. Même un jeu simple comme un simulateur de lancer de dés nécessiterait beaucoup de code si vous programmez tout à partir de zéro. Pour simplifier le processus et le rendre plus efficace, les développeurs utilisent la programmation modulaire – une méthode pour décomposer les grandes tâches de codage en sous-tâches plus petites et plus gérables. C'est pourquoi Python a tant de modules, de packages, de bibliothèques et de frameworks.

Maintenant, approfondissons chacun de ces concepts afin de comprendre les différences.

Modules Python

Si vous voulez que votre code soit bien organisé, c'est une bonne idée de commencer par regrouper le code associé. Un module est essentiellement un ensemble de code associé enregistré dans un fichier avec l'extension .py . Vous pouvez choisir de définir des fonctions, des classes ou des variables dans un module. Il est également possible d'inclure du code exécutable dans les modules.

Par exemple, définissons une fonction pour accueillir de nouveaux étudiants dans un cours particulier :

def welcome_message(course):
  print("Thank you for subscribing to our " + course + " course. You will get all the details in an email shortly.")

Pour que cette fonction soit stockée dans le module welcome, nous enregistrons ce code dans un fichier nommé welcome.py .

Si nous voulons utiliser ce code dans notre application, nous devons d'abord importer le module respectif à l'aide de l'instruction import. Ensuite, nous serons prêts à utiliser une fonction définie dans ce module en appelant cette fonction avec le module.function() syntaxe :

import welcome
welcome.welcome_message (“Python Basics Part 1”)
Output
Thank you for subscribing to our Python Basics Part 1 course. You will get all the details in the email shortly.

Il est courant d'avoir de nombreux éléments différents définis dans le même module. Ainsi, vous voudrez peut-être importer une seule fonction spécifique plutôt que le module entier. Pour cela, vous pouvez utiliser la syntaxe suivante :

from welcome import welcome_message

Si vous avez une certaine expérience avec Python, vous avez probablement utilisé des modules. Par exemple, vous avez peut-être utilisé :

  • aléatoire module pour générer des générateurs de nombres pseudo-aléatoires pour diverses distributions.
  • html module pour analyser les pages HTML.
  • dateheure module pour manipuler les données de date et d'heure.
  • re module pour détecter et analyser les expressions régulières en Python.

Les modules introduisent de nombreux avantages dans votre code Python :

  • Processus de développement amélioré. Les modules Python vous aident à vous concentrer sur une petite partie d'une tâche plutôt que sur un problème entier. Cela simplifie le processus de développement et le rend moins sujet aux erreurs. De plus, les modules sont généralement écrits de manière à minimiser les interdépendances. Ainsi, il est plus viable pour une équipe de plusieurs programmeurs de travailler sur la même application.
  • La fonctionnalité que vous définissez dans un module peut être utilisée dans différentes parties d'une application, ce qui minimise le code en double.
  • Espaces de noms séparés. Avec les modules Python, vous pouvez définir des espaces de noms distincts pour éviter les collisions entre les identifiants dans différentes parties de votre application.

Packages Python

Lors du développement d'une grande application, vous pouvez vous retrouver avec de nombreux modules différents difficiles à gérer. Dans un tel cas, vous bénéficierez du regroupement et de l'organisation de vos modules. C'est alors que les packages entrent en jeu.

Les packages Python sont essentiellement un répertoire d'une collection de modules. Les packages permettent la structure hiérarchique de l'espace de noms du module. Tout comme nous organisons nos fichiers sur un disque dur en dossiers et sous-dossiers, nous pouvons organiser nos modules en packages et sous-packages.

Pour être considéré comme un package (ou sous-package), un répertoire doit contenir un fichier nommé __init__.py . Ce fichier comprend généralement le code d'initialisation du package correspondant.

Par exemple, nous pouvons avoir le package suivant my_model avec des modules liés à notre projet de data science :

Nous pouvons importer des modules spécifiques à partir de ce package en utilisant la notation par points. Par exemple, pour importer le dataset module du package ci-dessus, nous pouvons utiliser l'un des extraits de code suivants :

import my_model.training.dataset

OU

from my_model.training import dataset

Ensuite, nous pouvons choisir d'importer uniquement le load_dataset() fonction de notre dataset.p y module. L'une ou l'autre des options suivantes fera l'affaire :

import my_model.training.dataset.load_dataset()

OU

from my_model.training.dataset import load_dataset()

Il existe de nombreux packages Python intégrés et open source que vous utilisez probablement déjà. Par exemple :

  • NumPy est le package Python fondamental pour le calcul scientifique.
  • pandas est un package Python pour le traitement rapide et efficace des données tabulaires, des séries chronologiques, des données matricielles, etc.
  • pytest fournit une variété de modules pour tester le nouveau code, y compris de petits tests unitaires ou des tests fonctionnels complexes.

Au fur et à mesure que votre application grandit et utilise de nombreux modules différents, les packages Python deviennent un composant crucial pour optimiser la structure de votre code.

Bibliothèques Python

Une bibliothèque est un terme générique faisant référence à un morceau de code réutilisable. Habituellement, une bibliothèque Python contient une collection de modules et de packages associés. En fait, ce terme est souvent utilisé de manière interchangeable avec "package Python" car les packages peuvent également contenir des modules et d'autres packages (sous-packages). Cependant, on suppose souvent que si un package est une collection de modules, un la bibliothèque est une collection de packages .

Souvent, les développeurs créent des bibliothèques Python pour partager du code réutilisable avec la communauté. Pour éliminer le besoin d'écrire du code à partir de zéro, ils créent un ensemble de fonctions utiles liées au même domaine.

Il existe aujourd'hui des milliers de bibliothèques utiles. Je vais donner quelques exemples :

  • Matplotlib library est une bibliothèque standard pour générer des visualisations de données en Python. Il prend en charge la création de graphiques bidimensionnels de base ainsi que de visualisations animées et interactives plus complexes.
  • PyTorch est une bibliothèque d'apprentissage en profondeur open source créée par le laboratoire de recherche sur l'IA de Facebook pour mettre en œuvre des réseaux de neurones avancés et des idées de recherche de pointe dans l'industrie et le milieu universitaire.
  • pygame fournit aux développeurs des tonnes de fonctionnalités et d'outils pratiques pour rendre le développement de jeux plus intuitif.
  • Belle soupe est une bibliothèque Python très populaire pour obtenir des données à partir du Web. Les modules et les packages de cette bibliothèque aident à extraire des informations utiles des fichiers HTML et XML.
  • Demandes fait partie d'une vaste collection de bibliothèques conçues pour simplifier les requêtes HTTP Python. La bibliothèque propose une méthode JSON intuitive qui vous permet d'éviter d'ajouter manuellement des chaînes de requête à vos URL.
  • manquantnon est très pratique pour gérer les points de données manquants. Il fournit des visualisations informatives sur les valeurs manquantes dans une base de données, aidant les scientifiques des données à repérer les zones avec des données manquantes. Il ne s'agit que de l'une des nombreuses excellentes bibliothèques Python pour le nettoyage des données.

Au fait, le NumPy et pandas les packages mentionnés précédemment sont également souvent appelés bibliothèques. En effet, ce sont des packages complexes qui ont de nombreuses applications (c'est-à-dire le calcul scientifique et la manipulation de données, respectivement). Ils incluent également plusieurs sous-paquetages et satisfont donc fondamentalement à la définition d'une bibliothèque Python. Découvrez d'autres bibliothèques importantes pour la science des données dans cet article.

Frameworks Python

Semblables aux bibliothèques, les frameworks Python sont une collection de modules et de packages qui aident les programmeurs à accélérer le processus de développement. Cependant, les frameworks sont généralement plus complexes que les bibliothèques. De plus, alors que les bibliothèques contiennent des packages qui effectuent des opérations spécifiques, les frameworks contiennent le flux et l'architecture de base de l'application .

Si vous comparez le développement d'applications à la construction de maisons, les frameworks Python fournissent tous les éléments de base essentiels comme les fondations, les murs, les fenêtres et le toit. Ensuite, les développeurs construisent leur application autour de ce socle en ajoutant des fonctionnalités comparables au système d'alarme d'une maison, au mobilier, à l'électroménager, etc.

Pour une meilleure compréhension, passons en revue plusieurs frameworks populaires :

  • Django est un framework Python pour créer des applications Web avec moins de codage. Avec toutes les fonctionnalités nécessaires incluses par défaut, les développeurs peuvent se concentrer sur leurs applications plutôt que sur les processus de routine.
  • Flacon est un cadre de développement Web connu pour sa conception légère et modulaire. Il possède de nombreuses fonctionnalités prêtes à l'emploi et s'adapte facilement à des besoins spécifiques.
  • Bouteille est un autre framework léger pour le développement Web qui était à l'origine destiné à la création d'API. Ses caractéristiques uniques sont qu'il n'a pas de dépendances autres que la bibliothèque standard Python et qu'il implémente tout dans un seul fichier source.

Les frameworks Python permettent aux programmeurs de rationaliser le processus de développement Web en fournissant une base nécessaire tout en restant flexible. Pas étonnant que les principales applications, dont Netflix, Airbnb, Reddit et Udemy, tirent parti des avantages des frameworks Python.

Il est temps de pratiquer vos compétences Python !

Il existe de nombreuses raisons valables d'apprendre Python :il est adapté aux débutants, sa syntaxe est facile à apprendre et une communauté fantastique est là pour vous aider lorsque vous êtes bloqué. Et si cela ne suffisait pas, considérez la richesse de l'écosystème de Python :pensez à n'importe quelle tâche aléatoire, et il y a de fortes chances que quelqu'un ait déjà créé un module ou un package open source pour résoudre ce problème.

Êtes-vous prêt à rejoindre cette communauté amicale ? Ensuite, je recommande de commencer par notre piste de base, Apprendre à programmer avec Python. Il comprend 5 cours interactifs avec 414 défis de codage qui couvrent les bases de Python, notamment :

  • Fonctions, boucles et instructions conditionnelles.
  • Listes, tuples, ensembles et dictionnaires Python.
  • Algorithmes intégrés de Python.
  • Erreurs de gestion, etc.

Si vous envisagez une carrière en science des données et que vous souhaitez apprendre Python dans ce contexte, la piste Python for Data Science est ce dont vous avez besoin. Cette piste propose également 5 cours interactifs et des centaines de défis de codage afin que vous puissiez maîtriser les outils dont vous aurez besoin pour travailler efficacement avec des données en Python.

Chez LearnPython.com, nos cours interactifs vous permettent d'acquérir des connaissances et de les mettre immédiatement en pratique. Vous écrirez du vrai code et le vérifierez sur notre plateforme en temps réel. Vous n'avez pas besoin d'installer ou de configurer quoi que ce soit. Il ne pourrait pas être plus facile d'apprendre à écrire du code Python que vous pourrez ensuite appliquer à vos propres projets. Alors êtes-vous prêt à apprendre Python ?

Merci d'avoir lu et bon apprentissage !