Exemples de personnalisations

Cette rubrique contient différents exemples expliquant comment ajouter des bibliothèques personnalisées via conda ou pip à l'aide des modèles fournis pour Python et R lors de la création d'une définition d'environnement.

Il existe des exemples pour :

Conseils et astuces :

Ajout de packages conda

Pour obtenir les dernières version de pandas-profiling :

dependencies:
  - pandas-profiling

Cela équivaut à exécuter conda install pandas-profiling dans un bloc-notes.

Ajout de packages pip

Vous pouvez également personnaliser un environnement à l'aide de pip si un module particulier n'est pas disponible dans les canaux conda :

dependencies:
  - pip:
    - ibm-watson-machine-learning

Cela équivaut à exécuter pip install ibm-watson-machine-learning dans un bloc-notes.

La personnalisation fera en fait plus que simplement installer le module pip spécifié. Le comportement par défaut de conda consiste également à rechercher une nouvelle version de pip, puis à l'installer. La vérification de toutes les dépendances implicites dans conda prend souvent plusieurs minutes et des gigaoctets de mémoire. La personnalisation suivante raccourcira l'installation de pip:

channels:
  - empty
  - nodefaults

dependencies:
  - pip:
    - ibm-watson-machine-learning

Le canal conda empty ne fournit aucun module. Il n'existe pas de module pip en particulier. conda n'essaiera pas d'installer pip et utilisera la version déjà préinstallée. Notez que le mot clé nodefaults dans la liste des canaux nécessite au moins un autre canal dans la liste. Sinon, conda ignore silencieusement le mot clé et utilise les canaux par défaut.

Combinaison de packages conda et pip

Vous pouvez répertorier plusieurs packages avec un package par ligne. Une seule personnalisation peut comporter des packages conda et des packages pip.

dependencies:
  - pandas-profiling
  - scikit-learn=0.20
  - pip:
    - watson-machine-learning-client-V4
    - sklearn-pandas==1.8.0

Notez que la notation de modèle requise est sensible aux espaces à gauche. Chaque élément de la liste de packages conda doit comporter deux espaces à gauche. Chaque élément de la liste de packages pip doit comporter quatre espaces à gauche. La version d'un module conda doit être spécifiée à l'aide d'un seul symbole égal (=), tandis que la version d'un module pip doit être ajoutée à l'aide de deux symboles égaux (==).

Ajout de packages complexes comportant des dépendances internes

Lorsque vous ajoutez de nombreux packages ou un package complexe comportant de nombreuses dépendances internes, l'installation de conda peut prendre un certain temps ou même s'arreter sans qu'aucun message d'erreur ne s'affiche. Pour éviter cela :

  • Spécifiez les versions des packages à ajouter. Cela réduit l'espace de recherche de conda pour résoudre les dépendances.
  • Augmentez la taille de mémoire de l'environnement.
  • Utilisez un canal spécifique au lieu des canaux conda par défaut définis dans le fichier .condarc. Cela évite de longues recherches dans des grands canaux.

Exemple de personnalisation qui n'utilise pas les canaux conda par défaut :

# get latest version of the prophet package from the conda-forge channel
channels:
  - conda-forge    
  - nodefaults

dependencies:
  - prophet

Cette personnalisation correspond à la commande suivante dans un bloc-notes :

!conda install -c conda-forge --override-channels prophet -y

Ajout de modules conda pour les blocs-notes R

L'exemple suivant montre comment créer une personnalisation qui ajoute des modules conda à utiliser dans un bloc-notes R :

channels:
  - defaults

dependencies:
  - r-plotly

Cette personnalisation correspond à la commande suivante dans un bloc-notes :

print(system("conda install r-plotly", intern=TRUE))

Les noms des modules R dans conda commencent généralement par le préfixe r-. Si vous utilisez simplement plotly dans votre personnalisation, l'installation aboutirait mais le modulePython serait installé à la place du module R. Si vous essayez ensuite d'utiliser le module dans votre code R comme dans library(plotly), cela renvoie une erreur.

Meilleures pratiques

Pour éviter les problèmes qui peuvent survenir lors de la recherche de packages ou de la résolution de dépendances conflictuelles, commencez pas installer les packages dont vous avez besoin manuellement via un bloc-notes dans un environnement de test. Cela vous permet de vérifier de manière interactive si des packages peuvent être installés sans générer d'erreurs. Après avoir vérifié que les packages ont tous été correctement installés, créez une personnalisation pour votre environnement de développement ou de production et ajoutez les packages au modèle de personnalisation.

Rubrique parent : Personnalisation des environnements