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 leur 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 le programme d’installation préconisé. À partir de
  Python 2.7.9, il est inclu par défaut avec les binaires
  d’installation de Python.

* un environnement virtuel est un environnement Python, semi-isolé,
  qui permet d’installer des paquets pour une application
  particulière, plutôt que de les installer sur le système entier

* "virtualenv" est un outil tiers pour créer des environnements
  virtuels, dans lesquels "pip" est installé par défaut.

* the Python Packaging 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 responsables de la maintenance et de
  l’évolution des outils standards de création de paquets, des
  métadonnées, et des formats de fichiers standards. Ils maintiennent
  quelques outils, documentation, et gestionnaires de ticket, aussi
  bien sur GitHub que sur 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.


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.

La commande suivante va installer la dernière version d’un module et
ses dépendances depuis le *Python Package Index* :

   python -m pip install SomePackage

Note: Pour les utilisateurs de systèmes POSIX (dont Mac OS X et
  Linux), les exemples de ce guide suppose que vous utilisez un
  *virtual environment*. Vous pouvez installer "virtualenv" pour créer
  de tels environnements soit via pip ("pip install virtualenv") soit
  via le gestionnaire de paquets de votre système (cherchez
  "virtualenv" ou "python-virtualenv").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.

Voir aussi: Python Packaging User Guide: Installing Scientific
  Packages


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

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


… installe "pip" pour des versions de Python antérieurs à la 2.7.9 ?
--------------------------------------------------------------------

Python n’a commencé à distribuer "pip" qu’à partir de la version
2.7.9. Pour les versions précédentes "pip" doit être « amorcé » tel
que décrit dans le *Python Packaging User Guide*.

Voir aussi: Python Packaging User Guide: Requirements for Installing
  Packages


… 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 Python scientifiques ont des dépendances
complexes, et ne sont pas facile à installer avec "pip". Pour le
moment, il sera souvent plus facile d’installer ces paquets par
*d’autres moyens <https://packaging.python.org/en/latest/science/>* __
plutôt que de tenter de les installer avec "pip".

Voir aussi: Python Packaging User Guide: Installing Scientific
  Packages


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

Sous Linux, Mac OS X et les systèmes POSIX, utilisez les commandes
Python versionnées en combinaison avec l’option "-m" pour exécuter la
copie appropriée de "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

(des versions de "pip" dont le nom est versionné peuvent également
ê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
inclue 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 not installed
-----------------

It is possible that "pip" does not get installed by default. One
potential fix is:

   python -m ensurepip --default-pip

There are also additional resources for 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.

Avec l’introduction du format binaire "wheel", et la possibilité de
publier des *wheels*, pour, au moins Windows et Mac OS X, via le
*Python Package Index*, ce problème devrait diminuer au fil du temps,
car les utilisateurs sont plus régulièrement en mesure d’installer des
extensions pré-compilées plutôt que de devoir les compiler eux-mêmes.

Certaine solutions pour installer des logiciels scientifiques qui ne
sont pas encore disponibles sous forme de fichiers "wheel" peuvent
aussi aider pour obtenir ces extensions binaire sans avoir à les
compiler localement.

Voir aussi: Python Packaging User Guide: Binary Extensions
