Comment installer correctement le code source du langage de programmation 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.
e-Marketing RasadaCrea avec Twitter
- Cours de formation individuelle du framework web django et python http://t.co/BGYWATs6 #solution #training 13 days ago
- Réaliser des scripts Python de traitement de fichiers log: cours de formation RasadaCrea http://t.co/wGVhoLs2 #web #training 70 days ago
- Votre strategie email marketing avec newsletter django de RasadaCrea http://t.co/UNc9J19P #solution #training 90 days ago