Les paquets Python sont des collections de modules (code réutilisable) qui étendent et améliorent les fonctionnalités du langage Python de base. Les développeurs Python contribuent au dépôt officiel Python Package Index (PyPI), mettant leurs paquets à la disposition de la communauté Python sous des conditions de licence open source. La Python Packaging Authority (PyPA) gère le dépôt et maintient un ensemble standard d’outils pour la construction, la distribution et l’installation de paquets Python.

Sur les superordinateurs de recherche de l’Université de l’Indiana, de nombreux paquets tiers sont déjà installés pour compléter les constructions Python couramment utilisées. Si vous avez un besoin unique d’un paquet Python tiers qui n’est pas déjà installé, vous pouvez utiliser pip ou setup.py pour installer le paquet dans votre répertoire personnel. Si vous savez que plusieurs chercheurs sont intéressés par l’utilisation d’un paquet Python qui n’est pas déjà installé, vous pouvez demander qu’il soit installé en tant que paquet de site à l’échelle du système.

Sur cette page :

  • Installer des paquets Python pour un usage personnel
    • Configurer votre environnement utilisateur
    • Installer un paquet en utilisant pip
    • Installer un paquet en utilisant son setup.py script
  • Comprendre l’ordre de recherche des modules

Installer des paquets Python pour un usage personnel

Configurer votre environnement utilisateur

Pour installer des paquets Python, vous devez avoir Python ajouté à votre environnement utilisateur. Sur Carbonate, Python est ajouté à votre environnement utilisateur par défaut. Sur Big Red 3, ou si vous avez précédemment supprimé Python, utilisez les instructions suivantes pour ajouter Python à votre environnement utilisateur :

  1. Vérifiez quels modules sont actuellement chargés ; sur la ligne de commande, entrez :
     module list
  2. Si Python ne figure pas dans la liste des modules actuellement chargés, utilisez la commande module load pour l’ajouter ; par exemple :
    • Pour ajouter la version par défaut, sur la ligne de commande, entrez :
       module load python
    • Pour ajouter une version autre que celle par défaut :
      1. Vérifier quelles versions sont disponibles ; sur la ligne de commande, entrez :
         module avail python
      2. Chargez la version préférée ; sur la ligne de commande, entrez (remplacez version_number par le numéro de la version préférée) :
         module load python/version_number
  3. Si Python figure parmi les modules actuellement chargés, mais que vous préférez ou devez utiliser une autre version, vous devez supprimer le module actuellement chargé avant de charger l’autre version. Pour effectuer cette opération avec une seule commande, utilisez module switch ; par exemple, sur la ligne de commande, entrez (remplacez current_version par le numéro de version du module python actuellement chargé et new_version par le numéro de version préféré) :
     module switch python/current_version python/new_version

Pour apporter des modifications permanentes à votre environnement, modifiez votre fichier~/.modules. Pour en savoir plus, voir Utiliser un fichier .modules dans votre répertoire personnel pour enregistrer votre environnement utilisateur sur un superordinateur de recherche de l’IU.

Pour en savoir plus sur l’utilisation des modules pour configurer votre environnement utilisateur, voir Utiliser les modules pour gérer votre environnement logiciel sur les superordinateurs de recherche de l’IU.

Installer un paquet en utilisant pip

L’outil de gestion de paquets pip, l’un des outils standard maintenus par la Python Package Authority (PyPA), est l’outil recommandé pour installer des paquets à partir du dépôt Python Package Index (PyPI).

Pour installer un paquet à partir du dépôt PyPI (par exemple, foo), utilisez la commande pip install avec l’option --user ; par exemple :

L’option --user dirige pip pour télécharger et décompresser la distribution source de votre paquet (par exemple, foo) dans le répertoire utilisateur site-packages pour le Python en cours d’exécution ; par exemple :

 ~/.local/lib/python3.6/site-packages/foo

Python recherche automatiquement les modules dans ce répertoire, il n’est donc pas nécessaire de faire précéder ce chemin d’accès à la variable d’environnement PYTHONPATH.

Si vous omettez l’option --user, pip tentera d’installer votre paquet dans le répertoire global site-packages (où vous n’avez pas les permissions nécessaires) ; en conséquence, l’installation échouera.

Pour en savoir plus sur l’utilisation de pip, consultez la page pip install du Guide de l’utilisateur de pip.

Installer un paquet en utilisant son setup.py script

Pour installer un package Python à partir d’une source autre que le dépôt PyPI, vous pouvez télécharger et décompresser vous-même la distribution source, puis utiliser son script setup.py pour installer le package dans le répertoire site-packages de l’utilisateur :

L’option --user indique à setup.py d’installer le paquetage (par exemple, foo) dans le répertoire utilisateur site-packages pour le Python en cours d’exécution ; par exemple :

 ~/.local/lib/pythonX.Y/site-packages/foo

Python recherche automatiquement les modules dans ce répertoire, il n’est donc pas nécessaire de faire précéder ce chemin de la variable d’environnement PYTHONPATH.

Si vous omettez l’option --user, setup.py tentera d’installer le paquetage dans le répertoire global site-packages (où vous n’avez pas les autorisations nécessaires) ; en conséquence, l’installation échouera.

Alternativement, vous pouvez utiliser l’option --home ou --prefix pour installer votre paquet dans un emplacement différent (où vous avez les autorisations nécessaires) ; par exemple, pour installer votre paquet dans un sous-répertoire (par exemple, python-pkgs) :

Note:
Si vous installez votre paquetage à un emplacement autre que le répertoire site-packages de l’utilisateur, vous devrez ajouter en préambule le chemin d’accès à ce répertoire à votre variable d’environnement PYTHONPATH. Pour plus d’informations sur PYTHONPATH, voir le PYTHONPATH et l’ordre python import ci-dessous.

Pour en savoir plus sur l’utilisation de setup.py pour installer des paquets, consultez la section Installation de modules Python (version héritée).

Comprendre l’ordre de recherche des modules

Savoir comment l’interpréteur Python répond aux déclarations import peut vous aider à déterminer pourquoi un module ou un paquetage particulier ne se charge pas, ou pourquoi une version inattendue d’un paquetage se charge, même si la version correcte est installée et que le chemin vers son emplacement est listé dans votre variable d’environnement PYTHONPATH.

Lorsque Python se lance, il recherche les chemins trouvés dans sys.path, une liste de répertoires qui détermine le chemin de recherche des modules par l’interpréteur. La variable sys.path est initialisée à partir des emplacements suivants, dans cet ordre :

  1. Le répertoire contenant le script utilisé pour invoquer l’interpréteur Python (si l’interpréteur est invoqué de manière interactive ou si le script est lu à partir de l’entrée standard, ce premier élément, path, reste une chaîne vide, ce qui indique à Python de rechercher d’abord les modules dans le répertoire de travail actuel)
  2. Les répertoires listés dans PYTHONPATH
  3. Le répertoire site-packages spécifique à la version de l’installation Python en cours d’exécution ; par exemple :
     <sys.prefix>/lib/pythonX.Y/site-packages

    Dans cet exemple, <sys.prefix> est le chemin d’accès à l’installation Python en cours d’exécution ; X.Y est le numéro de version (par exemple, 3.8) de l’installation Python en cours d’exécution.

Par défaut, Python importe également le module site.py lors de l’initialisation, ce qui ajoute des chemins spécifiques au site au chemin de recherche du module (sys.path), y compris le chemin vers votre répertoire utilisateur site-packages dans votre répertoire personnel ; par exemple (X.Y sera le numéro de version de l’installation Python en cours d’exécution) :

 ~/.local/lib/pythonX.Y/site-packages

A mesure que site.py ajoute des chemins à sys.path, il les scrute à la recherche de fichiers de configuration de chemin (.pth), qui contiennent des répertoires supplémentaires ajoutés à sys.path. Si un répertoire contient plusieurs fichiers .pth, site.py les traite par ordre alphabétique.

Cependant, certains fichiers .pth contiennent des commandes intégrées qui insèrent des entrées de répertoire au début du chemin de recherche du module (avant le chemin de la bibliothèque standard). Par conséquent, un module provenant de l’un des répertoires insérés se chargera à la place du module du même nom provenant du répertoire de la bibliothèque standard. Cela peut être un comportement indésirable et déroutant, à moins qu’un tel remplacement ne soit prévu.

Note:

Si vos demandes import sont constamment perturbées par les fichiers site.py et .pth, essayez d’invoquer l’interpréteur Python avec le -S (S majuscule):

 python -S

Cela désactive l’importation automatique de site.py et, par conséquent, l’empêche de manipuler sys.path. Cependant, cela empêche également site.py d’ajouter votre répertoire utilisateur site-packages à sys.path. Pour importer site.py sans ajouter votre répertoire utilisateur site-packages à sys.path, invoquez Python avec l’option -s (s minuscule) :

 python -s

Pour voir quels répertoires Python scanne lorsque vous émettez des commandes import, sur la ligne de commande, entrez :

 python -c "import sys; print ('\n'.join(sys.path))"

Alternativement, lancez Python en mode interactif, puis invoquez les mêmes commandes dans cet ordre (>>> est l’invite principale de Python):

 >>>import sys >>>print ('\n'.join(sys.path))
Note:
La variable sys.path n’est qu’une liste modifiable de chaînes de caractères que vous pouvez éditer comme toute autre liste Python. Évitez de modifier le premier élément de la liste (path), car de nombreux paquets supposent qu’il fait référence au répertoire contenant le script utilisé pour invoquer l’interpréteur Python.

Documents connexes

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.