Python

From CC Doc
Jump to: navigation, search
This page is a translated version of the page Python and the translation is 100% complete.

Other languages:
English • ‎français

Description

Python est un langage de programmation interprété dont la philosophie de design repose principalement sur la lisibilité du code. Sa syntaxe est simple et expressive et sa bibliothèque de modules standards est très étendue.

Les capacités du langage Python peuvent être étendues à l'aide de modules développés par des tiers. En général, nous n'installons pas les modules de tiers dans le répertoire de logiciels disponibles afin de simplifier le plus possible les opérations; il revient donc aux utilisateurs et aux groupes de les installer. En revanche, nous mettons à votre disposition plusieurs versions de l'interpréteur Python et les outils nécessaires pour que vous puissiez facilement installer les modules dont vous avez besoin.

Les sections suivantes présentent l'interpréteur Python et expliquent comment installer et utiliser les modules.

Charger l'interpréteur

Pour connaître les versions disponibles, utilisez

[nom@serveur ~]$ module avail python

Vous pouvez ensuite charger la version de votre choix avec la commande

[nom@serveur ~]$ module load python/2.7

Environnement logiciel SciPy

En plus du module Python de base, le paquet SciPy est aussi disponible comme module d'environnement. Le module scipy-stack comprend

  • NumPy
  • SciPy
  • Matplotlib
    • dateutil
    • pytz
  • IPython
    • pyzmq
    • tornado
  • pandas
  • Sympy
  • nose

Pour utiliser un de ces modules, chargez une version de Python, puis load module scipy-stack.

Pour plus d'information, consultez Scipy.org.

Créer et utiliser un environnement virtuel

Avec chaque version de Python vient l'outil virtualenv qui permet de créer des environnements virtuels à l'intérieur desquels vous pourrez installer facilement vos modules Python. Ces environnements permettent par exemple d'installer plusieurs versions d'un même module, ou encore de compartimenter les installations en fonction des besoins ou des expériences à réaliser. Nous vous recommandons de créer vos environnements virtuels Python dans votre répertoire home.

Pour créer un environnement virtuel, entrez la commande suivante, où ENV est le nom du répertoire vide qui contiendra votre environnement.

[name@server ~]$ virtualenv ~/ENV

Une fois l'environnement virtuel créé, il ne vous reste plus qu'à l'activer avec

[name@server ~]$ source ~/ENV/bin/activate

Pour quitter l'environnement virtuel, entrez simplement la commande deactivate.

[nom@serveur ~]$  deactivate

Installer des modules

Une fois que vous avez chargé un environnement virtuel, vous pouvez lancer la commande pip. Cette commande prend en charge la compilation et l'installation de la plupart des modules Python et de leurs dépendances. Consultez l'index complet des paquets Python.

Les commandes disponibles sont expliquées dans le manuel d'utilisation pip. Nous mentionnons ici les commandes les plus importantes en présentant un exemple d'installation du module NumPy.

Chargeons d'abord l'interpréteur Python avec

[nom@serveur ~]$ module load apps/python/2.7

Ensuite, activons l'environnement virtuel créé précédemment avec la commande virtualenv.

[name@server ~]$ source ~/ENV/bin/activate

Enfin, nous pouvons installer la dernière version stable de NumPy

[name@server ~]$ pip install numpy --no-index

L'option --no-index n'est pas obligatoire, mais elle fait en sorte que vous utiliserez une version de NumPy compilée par l'équipe de Calcul Canada.

Si on veut installer la version de développement de NumPy, on peut spécifier le lien vers le dépôt Git avec

[nom@serveur ~]$ pip install git+git://github.com/numpy/numpy.git

Dans le premier exemple avec la commande pip, on ne sait pas nécessairement où se trouve le module numpy qui est installé. On pourrait penser qu'il provient de PyPI, mais dans le cas de NumPy, l'installation se fait à partir d'un paquet binaire offert par Calcul Canada, pourvu qu'il s'agisse de la version courante. Si PyPi contient une version plus récente, cette dernière sera installée. Pour désactiver ce comportement par défaut et utiliser le paquet binaire de Calcul Canada, utilisez l'option --no-index.

Pour savoir d'où provient le module Python installé par pip, ajoutez l'option -vvv. Calcul Canada offre des paquets binaires pour plusieurs modules communs de Python; ils sont configurés pour faire le meilleur usage du matériel et des bibliothèques sur nos grappes.

Lister les environnements disponibles

Les environnements présentement disponibles sont listés sur la page Available wheels. Vous pouvez aussi utiliser le commande avail_wheels sur la grappe. Par défaut, cette commande montre seulement

  • la plus récente version d'un paquet en particulier, à moins qu'une version particulière n'ait été spécifiée;
  • les versions compatibles avec le module Python chargé; autrement, toutes les versions sont affichées;
  • les versions compatibles avec l'architecture CPU que vous utilisez à ce moment.

Pour lister les environnements dont le nom contient "cdf" (en minuscules ou majuscules), utilisez

[name@server ~]$ avail_wheels --name "*cdf*"
name     version    build    python    arch
-------  ---------  -------  --------  ------
netCDF4  1.4.0               cp27      avx2

Pour lister toutes les versions disponibles, utilisez

[name@server ~]$ avail_wheels --name "*cdf*" --all_version
name     version    build    python    arch
-------  ---------  -------  --------  ------
netCDF4  1.4.0               cp27      avx2
netCDF4  1.3.1               cp36      avx2
netCDF4  1.3.1               cp35      avx2
netCDF4  1.3.1               cp27      avx2
netCDF4  1.2.8               cp27      avx2

Pour lister une version spécifique, utilisez

[name@server ~]$ avail_wheels --name "*cdf*" --version 1.3
name     version    build    python    arch
-------  ---------  -------  --------  ------
netCDF4  1.3.1               cp36      avx2
netCDF4  1.3.1               cp35      avx2
netCDF4  1.3.1               cp27      avx2

Pour lister une version spécifique de Python, utilisez

[name@server ~]$ avail_wheels --name "*cdf*" --python 3.6
name     version    build    python    arch
-------  ---------  -------  --------  ------
netCDF4  1.3.1               cp36      avx2

The python column tell us for which python version the wheel is available, where cp36 stands for cpython 3.6.

Autres exemples
  • Liste de plusieurs paquets et versions : avail_wheels numpy biopython --version 1.15.0 1.7
  • Liste des environnements pour une architecture particulière ː avail_wheels --arch avx avx2
  • Liste des environnements pour GPU (colonnes name, version, python) : avail_wheels --column name version python --all_versions --name "*gpu"
  • Afficher l'utilisation et l'aide ː avail_wheels --help

Anaconda

Voir la page sur Anaconda.

Jupyter

Voir la page sur Jupyter.