====== Installer une version de Python en local (Miniforge / conda) ====== Cette procédure permet à chaque utilisateur d'installer **sa propre version de Python** dans son répertoire personnel, sans droits administrateur et indépendamment de la version système du cluster. Elle s'appuie sur [[https://github.com/conda-forge/miniforge|Miniforge]], une distribution conda légère basée sur conda-forge. On peut ainsi créer autant d'environnements isolés que nécessaire, chacun avec sa propre version de Python et ses propres paquets. ===== 1. Téléchargement et installation ===== __**A faire depuis un serveur en accès direct : christmas ou l40s02**__ Installation dans le répertoire personnel (''~'') : # Télécharger l'installeur (Linux x86_64) wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh # Installer en mode silencieux dans ~/miniforge3 bash Miniforge3-Linux-x86_64.sh -b -p ~/miniforge3 # (optionnel) supprimer l'installeur une fois terminé rm Miniforge3-Linux-x86_64.sh ===== 2. Création d'un environnement ===== # Charger conda dans le shell courant source ~/miniforge3/etc/profile.d/conda.sh # Créer un environnement avec Python 3.10 conda create -n my_env python=3.10 -y # Activer l'environnement conda activate my_env # Vérifier la version python --version # Installer les paquets voulus pip install ... ===== 3. Réutilisation après reconnexion ===== À chaque nouvelle connexion, il faut recharger conda puis réactiver l'environnement : source ~/miniforge3/etc/profile.d/conda.sh conda activate my_env ===== 4. Utilisation dans un script Slurm ===== Ces deux lignes doivent être placées dans le script **avant** l'appel à Python : source ~/miniforge3/etc/profile.d/conda.sh conda activate my_env python mon_script.py ===== Remarques ===== * **Quota du home** : les environnements conda sont volumineux. Attention à ne pas multiplier les environnements. * **Ne pas lancer ''conda init''** sur le cluster : cela modifie le ''.bashrc'' et peut interférer avec d'autres outils. La méthode par ''source ... conda.sh'' ci-dessus est volontairement préférée. /* ====== Quelques informations concernant l'utilisation de python sur la plateforme====== ===== Problème concernant le lock files avec Keras et H5PY===== Si vous utilisez une bibliothèque pour manipuler des fichiers, il est possible que vous rencontriez un problème lié au lock file. En effet, sur toutes les machines utilisant CentOs (les noeuds liés à frontalhpc), il semblerait que le NFS (système de fichier en réseau) ait un paramètre visant à bloquer les lock files. Voici la solution pour contourner ce problème si vous utilisez la bibliothèque de deep learning 'Keras'. Par exemple, si vous souhaitez enregistrer un modèle avec des checkpoints, vous risquez de rencontrer ce type d'erreur: OSError: Unable to create file(unable to lock file, errno=5, error message='Input/output error') Keras utilise la bibliothèque H5PY pour enregistrer ses modèles et c'est cette bibliothèque qui renvoie l'erreur. Pour la résoudre, il faut lui spécifier, via une variable d'environnement, de ne pas utiliser les lock file: export HDF5_USE_FILE_LOCKING="FALSE" Vous pouvez insérer cette commande dans votre script d'exécution ou encore dans votre bashrc. */