| accessibilité internet: réduction taille du texte accessibilité internet: agrandissement taille du texte | impression du contenu principal de cette page web fermez

Comment installer correctement le code source du langage de programmation Python

cours de programmation python, ateliers de formation python, cours individuels python

Installation Python sous Debian GNU/Linux, Ubuntu

Python est déjà installé dans les distributions Linux Ubuntu (Debian). Toutefois, il est possible d'installer une version spécifique disponible en distribution par la commande apt-get. On vérifie les noms de paquets Python disponible par la commande apt-cache. Ceci peut être une source de problèmes potentiels (conflits avec la version installée de la distribution d'OS). Attention donc.

$ apt-cache search python | less
$ sudo apt-get install pythonX.X

Il est plutôt préférable de procéder avec une installation de code source Python. Pour installer une des dernières versions de Python à partir du code source, nous pouvons la télécharger à l'FTPPython en sélectionnant le numéro de version souhaitée. Télécharger le fichier .tgz et lancer la séquence habituelle d'opérations configure, make, make altinstall avec les droits d'administrateur. Aussi nous devons, au préalable, vérifier et installer les dépendances relatives à la version Python correspondante avec apt-get build-dep. En outre, au préalable avant compilation du code source Python, nous devons également installer readline. Dans l'exemple suivant nous procédons à l'installation de la version Python 2.7.2:

$ sudo apt-get build-dep python
$ sudo apt-get install libreadline-dev
$ wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
--2012-01-18 20:33:32--  http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
Resolving www.python.org... 82.94.164.162
Connecting to www.python.org|82.94.164.162|:80... connected.
HTTP request sent, awaiting response... 200 OK
...
$ tar xfz Python-2.7.2.tgz
$ cd Python-2.7.2
Python-2.7.2$ ./configure
checking MACHDEP... linux2
checking EXTRAPLATDIR...
checking for −−without−gcc... no
...
Python-2.7.2$ make
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3
    -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE
    -o Modules/python.o ./Modules/python.c
...
Python-2.7.2$ sudo make altinstall
  (plutôt que "sudo make install" pour ne pas polluer la version installée par l'OS)
/usr/bin/install −c python /usr/local/bin/python2.7.2
...
Python-2.7.2$ cd ..
$ sudo rm -r Python-2.7.2*
$ which python
/usr/bin/python
$ python
Python 2.6.5 (#6, Apr 16 2010, 14:23:17)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
[Ctrl+D]
$ which python2.7
/usr/local/bin/python2.7
$ python2.7
Python 2.7.2 (default, Jan 18 2012, 16:23:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

En effet, au lancement de cette nouvelle version de Python, nous aurions pu constater une erreur d'importation de paquet readline à partir du fichier de lancement .pythonstartup (raison pour laquelle nous avons compilé avec la dépendance libreadline-dev). En tout cas une telle erreur ne nous empêcherait pas pour l'instant d'utiliser cette nouvelle version Python, fraîchement installée.

Tip

Erreur GCC et absence de bibliothèques à la compilation

En cas d'erreur de compilation impliquant la bibliothèque gcc (error: Setup script exited with error: command 'gcc' failed with exit status 1) ou d'erreurs d'absence d'autres bibliothèques lors de l'installation de paquets Python tiers, comme par exemple setuptools, ils peuvent manquer des bibliothèques spécifiques à la compilation Python, qui n'était pas disponible lors de la compilation du code source Python. L'installation des dépendances Python avant compilation d'une version spécifique X.X (si disponible) du code source Python, doit donc se faire avec. Aussi il convient de s'assurer que la bibliothèque de développement readline soit présente:

$ sudo apt-get build-dep pythonX.X
$ sudo apt-get install libreadline-dev

Comment Protéger la version Python pré-installée de la distribution d'OS

Il est important de ne pas trop toucher (ni détruire) à la version Python installée par la distribution Linux Ubuntu, car il existe des dépendances à respecter au sein de la distribution du système d'exploitation. Outre l'exemple ci-dessus d'utilisation de make altinstall au lieu de make install, il y a des nombreuses solutions pour installer une nouvelle version Python dans un environnement "étanche" sans perturber l'installation principale de la distribution du système d'exploitation. Par exemple, voici comment installer Python dans /opt en créant un environnement "étanche" (/opt est indiqué pour les installations de paquets tiers, ne faisant pas partie de la distribution officielle prise en compte par le système d'exploitation Linux Ubuntu, qui installe plutôt dans /bin, /usr/bin). En installant à partir du code source, chaque version Python serait entièrement contenue dans un répertoire sous /opt. Si jamais on veut supprimer une version, tout ce qu'il faudrait faire est de supprimer le répertoire correspondant et tous les liens associés. La première étape à suivre est de s'assurer que toutes les dépendances de développement Python sont installées:

$ sudo apt-get build-dep python3.2
$ sudo apt-get install libreadline-dev
$ cd /opt/
/opt$ sudo wget http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz
--2012-01-18 19:41:21--  http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz
Resolving www.python.org... 82.94.164.162
Connecting to www.python.org|82.94.164.162|:80... connected.
HTTP request sent, awaiting response... 200 OK
...
/opt$ sudo tar xfz Python-3.2.2.tgz
/opt$ cd Python-3.2.2
/opt/Python-3.2.2$ sudo ./configure --prefix=/opt/python3.2.2
checking for --enable-universalsdk... no
checking for --with-universal-archs... 32-bit
checking MACHDEP... linux2
checking machine type as reported by uname -m... i686
checking for --without-gcc... no
checking for gcc... gcc
...
/opt/Python-3.2.2$ make
gcc -pthread -c  -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
    -I. -IInclude -I./Include -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
...
/opt/Python-3.2.2$ sudo make altinstall
   (plutôt que "sudo make install" pour ne pas polluer la version installée par l'OS)
/usr/bin/install -c python /opt/python3.2.2/bin/python3.2m
if test "3.2" != "3.2m"; then
...
/opt/Python-3.2.2$ cd ..
/opt$ sudo rm -r Python-3.2.2*
/opt$ sudo ln -s /opt/python3.2.2/bin/python3.2 /usr/local/bin/python3.2
/opt$ which python3.2
/usr/local/bin/python3.2
/opt$ which python2.7
/usr/local/bin/python2.7
/opt$ which python
/usr/bin/python
/opt$ python3.2
Python 3.2.2 (default, Jan 18 2012, 19:52:21)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> [press Ctrl+D to get back to the command prompt]

Formation individuelle (DIF) et cours en programmation Python par RasadaCrea

Tous les cours de formation Python dispensé par RasadaCrea sont individuels et personnalisés. Contactez RasadaCrea pour en savoir plus au sujet de la création de votre plan personnalisé de formation en programmation Python, ainsi que sur les tarifs et formalités liées aux cours dispensés.