Python

Le langage de scripting Python est installé sur l’ensemble des serveurs interactifs et de la plateforme de calcul duCC-IN2P3. Vous pouvez obtenir de plus amples informations sur le site officiel ou en tapant :

% man python
% python -h

Vous avez la possibilité d’utiliser Python dans un fichier script. Dans ce cas, il est préférable que l’extension du fichier soit .py . Votre fichier devra alors contenir en première ligne :

#!/usr/bin/env python

Votre fichier devra avoir la caractéristique “exécutable” au sens Unix car Python est un langage interprété. Vous ne générez pas, à proprement dit, d’exécutable binaire au sens des langages de programmation tels que le C, le C++ ou le Fortran.

Pour charger l’environnement Python :

% ccenv python <version>

Pour connaître les versions disponibles :

% ccenv python --list

Environnement virtuel

Vous avez également la possibilité d’installer localement les modules python dont vous avez besoin sans avoir les droits d’administrateur sur les serveurs. Pour cela, il suffit de suivre la procédure suivante (exemple avec la version 3.6.7) :

% ccenv python 3.6.7
% python -m venv --system-site-packages "mon_nouvel_env"
% source "mon_nouvel_env"/bin/activate
(mon_nouvel_env) % python -m pip install --user mon_module

La première commande charge l’environnement Python 3.3 nécessaire pour l’utilisation de venv (disponible à partir de la version 3.3). La commande suivante permet de créer un “environnement” à partir du répertoire donné mon_nouvel_env, répertoire dans lequel seront installés et configurés les nouveaux modules Python. La troisième commande permet de dire au système qu’on souhaite utiliser cet environnement. La dernière commande demande à Python via le module pip d’installer le nouveau module mon_module.

Documentation officielle :

Vous pouvez ensuite voir le package installé :

(mon_nouvel_env) % pip list | grep mon_module
(mon_nouvel_env) % pip show mon_module

Pour sortir de l’environnement virtuel “mon_nouvel_env”, lancer la commande :

(mon_nouvel_env) % deactivate