Votre boite à outils Python

Que vous utilisiez Python en tant que professionnel, pour des petits projets ou simplement pour apprendre à programmer, il vous faut connaitre quelques outils. Tous ne sont pas indispensables (seul le premier de la liste suivante l’est) mais certains peuvent être très utiles. Il s’agit de :

  • Un interpréteur, c’est certainement le seul élément indispensable…
  • Un gestionnaire de packages, et en particulier pip
  • Python fournit de base un interpréteur interactif, mais qui a des lacunes… iPython offre ainsi un interpréter plus évolué, mais pas que…
  • Isoler vos développements, c’est avec Virtualenv et les outils qui vont avec
  • Développer de manière efficace passe par un environnement de développement.

Voici une petite présentation de ces outils que j’essayerai de faire la plus grand public possible.

L’interpréteur

Python est un langage interprété, un interpréteur, l’outil qui permettra aux programmes de s’exécuter est donc fondamental. L’interpréteur dit de référence est celui qui est distribué par le site officiel python.org. Si vous êtes sous Mac ou Linux, il est déjà installé sur votre machine. Sous Linux, vous pouvez l’installer ou le mettre à jour par le gestionnaire des packages. Pour Windows, il faudra aller le télécharger et l’installer.

Pip, le gestionnaire de packages

Lorsqu’on programme, on ne va pas réinventer la roue en permanence. Beaucoup de choses existent déjà et sont publiés sous forme de package. On peut gérer ces packages à la main, mais le mieux reste de passer par un outil qui fait ça, et dans l’univers Python, cet outil est pip.

Il est possible que pip soit déjà installé sur votre système, vérifiez sur la page de la documentation qui vous informera comment l’installer le cas échéant. Par la suite, vous n’avez globalement que 4 commandes à connaitre :

pip install -U pip # Mettre à jour pip
pip install django # Installe le package Django
pip install django --upgrade # Met à jour Django
pip uninstall django # Supprime le package Django

Voilà donc comment mettre à jour pip, comment installer un package, le mettre à jour et le supprimer. Précédé de sudo, pip installera le package au niveau système, avec l’option –user, ce sera pour l’utilisateur courant uniquement.

iPython, l’interpréteur évolué

Lorsqu’on développe en Python, on utilise l’interpréteur interactif. Mais celui-ci a des limites qui le rendent assez pénible. On va donc se tourner vers iPython dont pour la liste des fonctionnalités, je vous invite à consulter la page du projet.

Pour l’installer, c’est simplement par

pip install ipython

À partir de maintenant, plutôt que de lancer le shell Python classique, lancez iPython. Le simple bénéfice de l’autocomplétion (touche tabulation) fera que vous ne lancerez plus le shell interactif par défaut.

Virtualenv : isoler ses environnements

Nous avons vu comment installer des packages, mais nous avons là en fait un des plus gros challenge dans le développement : comment éviter le chaos ? Quelles sont les dépendances de votre projet ? Comment éviter qu’elles n’interagissent avec un autre projet et inversement ? Dans l’univers Python, la réponse à ces problèmes est virtualenv. Virtualenv est un outil permettant de créer des environnements isolés. Il faut commencer par l’installer par :

pip install virtualenv

Dans la pratique, virtualenv et iPython sont les deux seuls packages que vous avez besoin d’installer sur votre système dans le cadre d’un développement. Tous les autres seront rattachés à un virtualenv. En fait, pas tout à fait… Virtualenv est un bon produit mais un peu pénible à utiliser. Pour se simplifier la vie, il existe divers outils et par exemple, virtualenvwrapper. Ici je décrit l’usage sous Mac et Linux, pour Windows, c’est un peu plus compliqué et vous invite à consulter la doc. Pour l’installer, c’est le maintenant classique

pip install virtualenvwrapper

Ensuite, il faudra éditer le script de lancement du shell comme le .bashrc (Linux) ou le .bash_login sous Os X. On y ajoute les lignes suivantes

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace/python
source /usr/local/bin/virtualenvwrapper.sh

La première ligne indique où seront définis les différents virtualenvs que vous allez créer. Créez donc le répertoire correspondant. La seconde est destiné à certaine commandes liées à la création de projets. La troisième informe sur la localisation de virtualenvwrapper.sh et dépend donc de votre système.

Vous pourrez ainsi lors du prochain lancement de votre shell utiliser virtualenvwrapper. Les commandes dont vous allez avoir besoin sont :

mkvirtualenv monEnv # Crée un nouveau virtualenv
workon monEnv # Active le virtualenv monEnv
lssitepackages # Liste les packages présent dans cet environnement
deactivate # Désactive le virtualenv
rmvirtualenv monEnv # Supprime le virtualenv monEnv

Lorsque vous créez un nouveau virtualenv, vous verrez qu’un répertoire avec le même nom sera créé dans le répertoire $WORKON_HOME. Celui-ci stockera la configuration de votre environnement virtuel. Lorsque vous l’activerez par la commande workon, toute installation de package aura la portée limitée à cet environnement.

Cerise sur le gâteau, les virtualenvs permettent également de définir l’interpréteur qui sera actif en son sein. Pour cela, lorsque vous créez le virtualenv, faites le avec l’option de la ligne suivante qui permet d’imposer l’interpréteur Python 3 :

mkvirtualenv --python=`which python3` nameOfEnvironment

Notez que which python3 est encadré par un back quote ou simplement un accent grave. Il s’agit d’une substitution de commande, c’est à dire que ce qui est entre ces quotes sera exécuté et le résultat substitué à cette commande. Nous aurons donc bien le chemin vers l’interpréteur Python3 en paramètre de l’option –python.

À noter que workon sans paramètre liste les virtualenvs disponibles.

Un IDE pour travailler plus efficacement

Python est un langage interprété à la gestion relativement simple. Utiliser un IDE (Environnement de Développement Intégré) n’est donc pas une obligation, mais aide beaucoup. Il y a plusieurs outils sur le marché et globalement, on peut éviter toute dépendance avec ces outils. Chacun est libre d’utiliser l’outil qu’il souhaite. Je vais en citer 3 :

  • Eclipse + pyDev : pyDev est simplement le plug-in Python pour Eclipse. Les développeurs issus de la communauté Java se tourneront naturellement vers ce package, pour ma part, je l’ai abandonné jugeant passez plus de temps à faire fonctionner Eclipse que de produire.
  • Aptana Studio : il s’agit ici d’un produit reposant également sur Eclipse mais qui est une solution packagée complète assez stable. Je la préfère au coupe Eclipse + PyDev. Malheureusement, ce projet ne semble plus maintenu, je continu à le référencer au cas où…
  • PyCharm : il s’agit de l’IDE de JetBrains à qui l’on doit l’excellent IntelliJ Idea. Certainement le meilleur IDE cité ici, il est disponible en version payante et gratuite. Cette version Community est suffisante la plupart du temps, mais certaines fonctions (comme l’intégration Django ou Google AppEngine) ne sont évidemment disponible que dans la version sous licence.

Cet article doit vous permettre d’être correctement outillé pour développer en Python. Rappelez-vous que seul l’interpréteur (Python) est indispensable. Si vous êtes débutant et que vous ne voyez pas l’avantage des autres, ce n’est pas grave, vous vous y mettrez plus tard. Si par contre vous êtes un professionnel qui doit lancer un projet conséquence en Python, je vous encourage à les utiliser tous (en plus évidemment d’un gestionnaire de versions).

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

3 réponses

  1. 3 juillet 2016

    […] Je vous conseil même d’utiliser conjointement les Virtualenvs. […]

  2. 16 juillet 2016

    […] Pour cette partie, je pars du principe que vous avez des bases en développement Python. Vous connaissez également les outils de la boîte à outils Python. […]

  3. 27 janvier 2019

    […] bonne pratique consiste à créer un Virtualenvs pour travailler sur votre projet au sein duquel vous installerez la bibliothèque par le […]

Laisser un commentaire