Dans cette page :
- Conda ou miniconda ?
- Charger l’environnement
- Vérifier quels sont les environnements disponibles
- Activer un environnement
- Vérifier les paquets installés dans l’environnement courant
- Rechercher un paquet à installer
- Installer des paquets dans l’environnement courant
- Installer un paquet avec pip
- Créer un nouvel environnement
- Cloner un environnement
- Faire le ménage dans ses environnements
- Faire le ménage dans ses paquets
- Conda ou miniconda ?
- Charger l’environnement
- Vérifier quels sont les environnements disponibles
- Activer un environnement
- Vérifier les paquets installés dans l’environnement courant
- Rechercher un paquet à installer
- Installer des paquets dans l’environnement courant
- Installer un paquet avec pip
- Créer un nouvel environnement
- Cloner un environnement
- Faire le ménage dans ses environnements
- Faire le ménage dans ses paquets
Conda ou miniconda ?
conda est un gestionnaire d’environnements appelé miniconda et un ensemble de paquets utiles pour les applications scientifiques. Nous avons fait le choix d’installer miniconda seul, et de définir plusieurs environnements"types" que vous pourrez utiliser en fonction de votre projet.
Si ces environnements ne vous conviennent pas, nous expliquons ici comment construire votre propre environnement
Charger l’environnement
module purge module load conda/24.11.1
Vérifier quels sont les environnements disponibles
conda env list [manu@olympelogin1 ~]$ conda env list # conda environments: # fidle /users/sysadmin/manu/.conda/envs/fidle gdal /users/sysadmin/manu/.conda/envs/gdal ... base * /usr/local/miniconda/24.11.1 pytorch-1.7 /usr/local/miniconda/24.11.1/envs/pytorch-1.7
Le caractère ’*’ montre quel est votre environnement courant
Activer un environnement
[manu@olympelogin1 ~]$ conda activate pytorch-1.7 (pytorch-1.7) [manu@olympelogin1 ~]$
Vérifier les paquets installés dans l’environnement courant
(pytorch-1.7) [manu@olympelogin1 ~]$ conda list # packages in environment at /usr/local/miniconda/4.9.2/envs/pytorch-1.7: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_llvm conda-forge ca-certificates 2020.12.5 ha878542_0 conda-forge certifi 2020.12.5 py39hf3d152e_1 conda-forge cffi 1.14.5 py39he32792d_0 conda-forge cudatoolkit 10.2.89 h8f6ccaa_8 conda-forge cudnn 7.6.5.32 h01f27c4_1 conda-forge ...
Rechercher un paquet à installer
(pytorch-1.7) [manu@olympelogin1 ~]$ conda search tensorflow Loading channels: done # Name Version Build Channel ... tensorflow 1.8.0 h01c6a4e_0 pkgs/main tensorflow 1.8.0 h16da8f2_0 pkgs/main tensorflow 1.8.0 h2742514_0 pkgs/main ...
Installer des paquets dans l’environnement courant
Ici j’installe une vieille version de numpy :
(mon_environnement) [manu@olympelogin1 ~]$ conda install numpy=1.9.3=py27_nomklhbee5d10_3 Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /users/sysadmin/manu/.conda/envs/mon_environnement added / updated specs: - numpy==1.9.3=py27_nomklhbee5d10_3 The following packages will be downloaded: package | build ---------------------------|----------------- libopenblas-0.2.20 | h9ac9557_7 4.0 MB numpy-1.9.3 |py27_nomklhbee5d10_3 2.6 MB pip-19.3.1 | py27_0 1.7 MB python-2.7.18 | h15b4118_1 9.9 MB setuptools-44.0.0 | py27_0 512 KB ------------------------------------------------------------ Total: 18.7 MB The following NEW packages will be INSTALLED: _libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main blas pkgs/main/linux-64::blas-1.0-openblas ca-certificates pkgs/main/linux-64::ca-certificates-2021.1.19-h06a4308_0 certifi pkgs/main/noarch::certifi-2020.6.20-pyhd3eb1b0_3 libedit pkgs/main/linux-64::libedit-3.1.20191231-h14c3975_1 libffi pkgs/main/linux-64::libffi-3.3-he6710b0_2 libgcc-ng pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0 libgfortran-ng pkgs/main/linux-64::libgfortran-ng-7.3.0-hdf63c60_0 libopenblas pkgs/main/linux-64::libopenblas-0.2.20-h9ac9557_7 libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0 ncurses pkgs/main/linux-64::ncurses-6.2-he6710b0_1 numpy pkgs/main/linux-64::numpy-1.9.3-py27_nomklhbee5d10_3 pip pkgs/main/linux-64::pip-19.3.1-py27_0 python pkgs/main/linux-64::python-2.7.18-h15b4118_1 readline pkgs/main/linux-64::readline-8.1-h27cfd23_0 setuptools pkgs/main/linux-64::setuptools-44.0.0-py27_0 sqlite pkgs/main/linux-64::sqlite-3.33.0-h62c20be_0 tk pkgs/main/linux-64::tk-8.6.10-hbc83047_0 wheel pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0 zlib pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3 Proceed ([y]/n)? y Downloading and Extracting Packages numpy-1.9.3 | 2.6 MB | ################################################################################################################################################################################################### | 100% pip-19.3.1 | 1.7 MB | ################################################################################################################################################################################################### | 100% python-2.7.18 | 9.9 MB | ################################################################################################################################################################################################### | 100% setuptools-44.0.0 | 512 KB | ################################################################################################################################################################################################### | 100% libopenblas-0.2.20 | 4.0 MB | ################################################################################################################################################################################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done
On voit qu’une vieille version de python a été installée avec...
Installer un paquet avec pip
Certains logiciels s’installent avec pip et pas avec Conda. Il est tout-à-fait possible d’utiliser pip dans un environnement conda, mais nous vous recommandons de commencer par lire cette documentation (en anglais), qui explique les précautions à prendre.
Créer un nouvel environnement
...pour installer une autre application, et l’activer :
(pytorch-1.7) [manu@olympelogin1 ~]$ conda create -n mon_environnement --clone base Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /users/sysadmin/manu/.conda/envs/mon_environnement Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate mon_environnement # # To deactivate an active environment, use # # $ conda deactivate (pytorch-1.7) [manu@olympelogin1 ~]$ conda activate mon_environnement (mon_environnement) [manu@olympelogin1 ~]$ (mon_environnement) [manu@olympelogin1 ~]$ conda list # packages in environment at /users/sysadmin/manu/.conda/envs/mon_environnement: # # Name Version Build Channel
NOTE : Afin que tout se passe bien, et notamment l’utilisation ultérieure de pip dans votre environnement, il est préférable de cloner l’environnement base plutôt que de créer un environnement à partir de rien. D’où le switch --clone base
A ce stade, mon_environnement est une coquille vide : la suite montre comment la remplir
Cloner un environnement
Si vous voulez travailler dans un environnement personnalisé qui soit basé sur un environnement existant, vous pouvez commencer par le cloner (c’est-à-dire le copier) :
Ainsi, je vais reprendre mon_environnement
mais y installer une version plus récente de numpy. Pour commencer je vais cloner mon_environnement
(clonage) et activer le nouvel environnement :
(mon_environnement) [manu@olympelogin1 ~]$ conda create -n mon_nouvel_environnement --clone mon_environnement Source: /users/sysadmin/manu/.conda/envs/mon_environnement Destination: /users/sysadmin/manu/.conda/envs/mon_nouvel_environnement Packages: 20 Files: 0 Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate mon_nouvel_environnement # # To deactivate an active environment, use # # $ conda deactivate
Il ne se passe (presque) rien : conda fait des liens durs afin de "copier" l’environnement sans utiliser trop d’espace disque.
Maintenant j’active le nouvel environnement et j’installe numpy1.11.3 :
(mon_environnement) [manu@olympelogin1 ~]$ conda activate mon_nouvel_environnement (mon_nouvel_environnement) [manu@olympelogin1 ~]$ conda install numpy=1.11.3 Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retrying with flexible solve. Collecting package metadata (repodata.json): done Solving environment: done ## Package Plan ## environment location: /users/sysadmin/manu/.conda/envs/mon_nouvel_environnement added / updated specs: - numpy=1.11.3 The following packages will be downloaded: package | build ---------------------------|----------------- blas-1.0 | openblas 46 KB numpy-1.11.3 | py27h2aefc1b_9 10 KB numpy-base-1.11.3 | py27h7cdd4dd_9 2.9 MB ------------------------------------------------------------ Total: 2.9 MB The following NEW packages will be INSTALLED: numpy-base pkgs/main/linux-64::numpy-base-1.11.3-py27h7cdd4dd_9 The following packages will be UPDATED: numpy 1.9.3-py27_nomklhbee5d10_3 --> 1.11.3-py27h2aefc1b_9 The following packages will be DOWNGRADED: blas --> Proceed ([y]/n)? y Downloading and Extracting Packages numpy-base-1.11.3 | 2.9 MB | ################################################################################################################################################################################################### | 100% blas-1.0 | 46 KB | ################################################################################################################################################################################################### | 100% numpy-1.11.3 | 10 KB | ################################################################################################################################################################################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done
J’ai maintenant à ma disposition deux environnements, avec deux versions différentes de numpy : je peux décider quelle version je veux conserver !
Faire le ménage dans ses environnements
Si les tests ci-dessus ne sont pas concluants, je n’ai pas abîmé mon ancien environnement : je n’ai plus qu’à supprimer le nouvel environnement, qui n’a pas fait ses preuves :
(mon_nouvel_environnement) [manu@olympelogin1 ~]$ conda deactivate (mon_environnement) [manu@olympelogin1 ~]$ conda env remove -n mon_nouvel_environnement Remove all packages in environment /users/sysadmin/manu/.conda/envs/mon_nouvel_environnement:
...Et si les tests sont concluants et que je n’ai plus besoin de mon_environnement, c’est lui que je supprimerai pour économiser l’espace disque.
Faire le ménage dans ses paquets
Toutes ces manipulations vont remplir votre home, en particulier vous vous retrouverez avec un grand nombre de fichiers .tgz qui ne servent plus à rien une fois les paquets installés. C’est ce qu’on appelle le cache. Par prudence, commencez par une commande qui ne fera rien d’autre que de vous dire ce qui sera nettoyé :
conda clean -a —dry-run
Si vous souhaitez garder des tgz (pour pouvoir reproduire votre installation ailleurs par exemple), c’est le moment de les mettre en lieu sûr !
Et quand vous êtes prêts :
conda clean -a
Si certains paquets ont été installés avec la commande pip
, vous pouvez utiliser ces commandes pour supprimer les fichiers temporaires mis en cache lors de l'installation :
- Localiser le répertoire contenant le cache :
pip cache dir
- Purger les fichiers du cache :
pip cache purge