Modules tiers

PythonPythonBeginner

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Python dispose d'une vaste bibliothèque de modules intégrés (batteries incluses).

Il existe encore beaucoup plus de modules tiers. Consultez-les dans l'Index de packages Python ou PyPi. Ou faites simplement une recherche Google sur un sujet spécifique.

La gestion des dépendances tierces est un sujet en constante évolution avec Python. Cette section ne couvre que les bases pour vous aider à comprendre comment cela fonctionne.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") subgraph Lab Skills python/python_shell -.-> lab-132739{{"Modules tiers"}} python/importing_modules -.-> lab-132739{{"Modules tiers"}} python/standard_libraries -.-> lab-132739{{"Modules tiers"}} python/constructor -.-> lab-132739{{"Modules tiers"}} python/regular_expressions -.-> lab-132739{{"Modules tiers"}} python/os_system -.-> lab-132739{{"Modules tiers"}} python/numerical_computing -.-> lab-132739{{"Modules tiers"}} end

Le chemin de recherche de modules

sys.path est un répertoire qui contient la liste de tous les répertoires vérifiés par l'instruction import. Voici ce que ça donne :

>>> import sys
>>> sys.path
... regardez le résultat...
>>>

Si vous importez quelque chose et qu'il n'est pas situé dans l'un de ces répertoires, vous obtiendrez une exception ImportError.

Modules de la bibliothèque standard

Les modules de la bibliothèque standard de Python proviennent généralement d'un emplacement tel que /usr/local/lib/python3.6. Vous pouvez le vérifier avec un test court :

>>> import re
>>> re
<module 're' from '/usr/local/lib/python3.6/re.py'>
>>>

Regarder simplement un module dans l'interpréteur interactif est un bon conseil de débogage. Cela vous montrera l'emplacement du fichier.

Modules tiers

Les modules tiers se trouvent généralement dans un répertoire dédié site-packages. Vous le verrez si vous effectuez les mêmes étapes que ci-dessus :

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

Encore une fois, examiner un module est un bon conseil de débogage si vous essayez de comprendre pourquoi quelque chose lié à import ne fonctionne pas comme prévu.

Installation de modules

La technique la plus courante pour installer un module tiers est d'utiliser pip. Par exemple :

$ python3 -m pip install packagename

Cette commande téléchargera le package et l'installera dans le répertoire site-packages.

Problèmes

  • Vous pouvez utiliser une installation de Python que vous ne contrôlez pas directement.
    • Une installation approuvée par l'entreprise
    • Vous utilisez la version de Python qui est incluse dans le système d'exploitation.
  • Vous n'avez peut-être pas la permission d'installer des packages globaux sur l'ordinateur.
  • Il peut y avoir d'autres dépendances.

Environnements virtuels

Une solution courante aux problèmes d'installation de packages est de créer pour vous-même un soi-disant "environnement virtuel". Naturellement, il n'y a pas "une seule manière" de le faire - en fait, il existe plusieurs outils et techniques concurrentes. Cependant, si vous utilisez une installation standard de Python, vous pouvez essayer de taper ceci :

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

Après quelques instants d'attente, vous aurez un nouveau répertoire mypython qui est une petite installation Python à vous. Dans ce répertoire, vous trouverez un répertoire bin/ (Unix) ou un répertoire Scripts/ (Windows). Si vous exécutez le script activate trouvé là, il "activera" cette version de Python, en la rendant la commande python par défaut pour le shell. Par exemple :

$ source mypython/bin/activate
(mypython) bash %

À partir d'ici, vous pouvez maintenant commencer à installer des packages Python pour vous-même. Par exemple :

(mypython) $ python -m pip install pandas

...

Dans le cadre d'expériences et d'essais de différents packages, un environnement virtuel fonctionnera généralement bien. Si, d'autre part, vous créez une application et qu'elle a des dépendances de packages spécifiques, c'est un problème légèrement différent.

Gérer les dépendances tierces dans votre application

Si vous avez écrit une application et qu'elle a des dépendances tierces spécifiques, un défi consiste à créer et à conserver l'environnement qui inclut votre code et les dépendances. Malheureusement, c'est un domaine qui a été source de grande confusion et de nombreux changements au cours de la vie de Python. Il continue d'évoluer même aujourd'hui.

Plutôt que de fournir des informations qui risquent de devenir rapidement obsolètes, je vous renvoie au Guide de l'utilisateur du packaging Python.

Exercice 9.4 : Création d'un environnement virtuel

Voyons si vous pouvez recréer les étapes de création d'un environnement virtuel et d'installation de pandas dedans comme indiqué ci-dessus.

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur les modules tiers. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.