Installation de modules Python
******************************

Email:
   distutils-sig@python.org

En tant que logiciel libre populaire, Python bénéficie d'une
communauté active de contributeurs et d'utilisateurs qui rendent à
leur tour leurs logiciels disponibles, sous licence libre, pour les
autres développeurs Python.

Cela permet aux utilisateurs de Python de partager et de collaborer
efficacement, bénéficiant des solutions que les autres ont déjà crées
pour résoudre les problèmes communs (ou même, parfois, rares !), aussi
que de partager leurs propres solutions à tous.

Ce guide couvre la partie installation. Pour un guide sur la création
et le partage de vos propres projets Python, voyez le guide de
distribution.

Note:

  Pour les entreprises et autres institutions, gardez en tête que
  certaines organisations ont leurs propres règles sur l'utilisation
  et la contribution au logiciel libre. Prenez ces règles en compte
  lorsque vous utilisez les outils de distribution et d'installation
  fournis par Python.


Vocabulaire
===========

* "pip" est l'outil d'installation de prédilection. À partir de Python
  3.4, il est inclus par défaut avec l'installateur de Python.

* Un *environnement virtuel* est un environnement Python semi-isolé
  qui autorise les paquets à être installés pour une application
  particulière, plutôt que d'être installés au niveau du système.

* "venv" est l'outil standard pour créer des environnements virtuels,
  et est intégré à Python depuis la version 3.3. Depuis Python 3.4, il
  installe aussi "pip" dans tous les environnements virtuels créés.

* "virtualenv" est une alternative tierce à "venv" (et son
  prédécesseur). Elle permet la création d'environnements virtuels
  pour les versions de Python antérieures à 3.4, qui ne fournissent
  pas de "venv", ou ne sont pas capables d'installer automatiquement
  "pip" dans les environnements créés.

* The Python Package Index is a public repository of open source
  licensed packages made available for use by other Python users.

* le Python Packaging Authority est le groupe de développeurs et
  d'auteurs de documentation responsable de la maintenance et de
  l'évolution des suites d'outils standard et des normes de
  métadonnées et de format de fichiers associées. Ils maintiennent une
  variété d'outils, de documentation, et d'outils de suivi des
  problèmes sur les deux sites GitHub et Bitbucket.

* "distutils" est le premier système de construction et de
  distribution ajouté à la bibliothèque standard en 1998. Bien que
  l'utilisation directe de "distutils" soit progressivement supprimée,
  elle reste le fondement de l'infrastructure actuelle de construction
  de paquet et de distribution. Au-delà de rester dans la bibliothèque
  standard, son nom vit aussi sous d'autres formes, tel que la liste
  de diffusion utilisée pour coordonner le développement et les
  standards de la création de paquet.

Modifié dans la version 3.5: L'utilisation de "venv" est maintenant
recommandée pour créer vos environnements virtuels.

Voir aussi:

  Guide Utilisateur de l'Empaquetage Python : Créer et utiliser des
  environnements virtuels


Utilisation de base
===================

Les outils standards de création de paquets sont tous conçus pour être
utilisés à partir de la ligne de commande.

The following command will install the latest version of a module and
its dependencies from the Python Package Index:

   python -m pip install SomePackage

Note:

  For POSIX users (including macOS and Linux users), the examples in
  this guide assume the use of a *virtual environment*.Pour les
  utilisateurs de Windows, les exemples de ce guide supposent que
  l'option proposant de modifier la variable d'environnement PATH à
  été cochée lors de l'installation de Python.

Il est aussi possible de préciser une version minimum exacte
directement depuis la ligne de commande. Utiliser des caractères de
comparaison tel que ">", "<" ou d'autres caractères spéciaux qui sont
interprétés par le *shell*, le nom du paquet et la version doivent
être mis entre guillemets :

   python -m pip install SomePackage==1.0.4    # specific version
   python -m pip install "SomePackage>=1.0.4"  # minimum version

Normalement, si un module approprié est déjà installé, l'installer à
nouveau n'aura aucun effet. La mise à jour de modules existants doit
être demandée explicitement :

   python -m pip install --upgrade SomePackage

Plus d'informations et de ressources concernant "pip" et ses capacités
peuvent être trouvées dans le Python Packaging User Guide.

La création d'environnements virtuels est réalisée grâce au module
"venv". Installer des paquets au sein de l'environnement virtuel
courant utilise les commandes montrées précédemment.

Voir aussi:

  Guide Utilisateur de l'Empaquetage Python : Installer les paquets de
  la distribution Python


Comment puis-je … ?
===================

Ce sont des réponses rapides ou des liens pour certaines tâches
courantes.


... Installer "pip" avec une version de Python antérieures à la 3.4 ?
---------------------------------------------------------------------

Python n'a commencé à fournir "pip" depuis Python 3.4. Pour les
versions précédentes, "pip" a besoin d'être "amorcé" tel que décrit
dans le *Python Packaging User Guide*.

Voir aussi:

  Guide Utilisateur de l'Empaquetage Python : Pré-requis pour
  installer des paquets


... Installer des paquets juste pour l'utilisateur actuel ?
-----------------------------------------------------------

Donner l'option "--user" à "python -m pip install" lui fera installer
un paquet juste pour l'utilisateur en cours, plutôt que pour tous les
utilisateurs du système.


... Installer des paquets Python scientifiques ?
------------------------------------------------

Un certain nombre de paquets scientifiques Python ont des dépendances
binaires complexes, et ne sont pas actuellement faciles à installer
directement avec "pip". Pour le moment, il est souvent plus simple
pour les utilisateurs d'installer ces paquets par d'autres moyens
plutôt que d'essayer de les installer avec "pip".

Voir aussi:

  Guide Utilisateur de l'Empaquetage Python : Installer des paquets
  scientifiques


... Travailler avec plusieurs versions de Python installés en parallèle ?
-------------------------------------------------------------------------

On Linux, macOS, and other POSIX systems, use the versioned Python
commands in combination with the "-m" switch to run the appropriate
copy of "pip":

   python2   -m pip install SomePackage  # default Python 2
   python2.7 -m pip install SomePackage  # specifically Python 2.7
   python3   -m pip install SomePackage  # default Python 3
   python3.4 -m pip install SomePackage  # specifically Python 3.4

Les versions appropriées des commandes "pip" peuvent aussi être
disponibles.

Sous Windows, utilisez le lanceur Python "py" en combinaison avec
l'option "-m" :

   py -2   -m pip install SomePackage  # default Python 2
   py -2.7 -m pip install SomePackage  # specifically Python 2.7
   py -3   -m pip install SomePackage  # default Python 3
   py -3.4 -m pip install SomePackage  # specifically Python 3.4


Les problèmes d'installation typiques
=====================================


Installer dans le Python du système sur Linux
---------------------------------------------

Sur les systèmes Linux, une installation de Python sera généralement
incluse dans le cadre de la distribution. Installer dans cette
installation de Python nécessite un accès *root* sur le système, et
peut interférer avec le fonctionnement du gestionnaire de paquets du
système et d'autres composants du système si un composant est mis à
jour de façon inattendue en utilisant "pip".

Sur de tels systèmes, il est souvent préférable d'utiliser un
environnement virtuel ou une installation par l'utilisateur lors de
l'installation des paquets avec "pip".


"Pip" n'est pas installé
------------------------

Il est possible que "pip" ne soit pas installé par défaut. Une
solution est :

   python -m ensurepip --default-pip

Voir aussi installing pip.


Installation d'extensions binaires
----------------------------------

Python a généralement beaucoup misé sur une distribution basée sur les
sources, avec laquelle les utilisateurs finaux devaient compiler, lors
de l'installation, les modules d'extension à partir des sources.

With the introduction of support for the binary "wheel" format, and
the ability to publish wheels for at least Windows and macOS through
the Python Package Index, this problem is expected to diminish over
time, as users are more regularly able to install pre-built extensions
rather than needing to build them themselves.

Certaines solutions pour installer des paquets scientifiques qui ne
sont pas encore disponibles comme "wheel" pré-construites peuvent
aussi aider à obtenir d'autres extensions binaires sans devoir les
construire localement.

Voir aussi:

  Guide Utilisateur de l'Empaquetage Python : Extensions binaires
