J'ai une installation de miniconda3 où j'ai créé un environnement virtuel appelé py35. J'ai quelques bibliothèques que je veux utiliser uniquement à partir de cet environnement. ils sont donc sous
/.../miniconda3/envs/py35/libs
Cependant, ils ne sont pas trouvés dans l'environnement car LD_LIBRARY_PATH ne contient pas ledit dossier. Je veux maintenant définir LD_LIBRARY_PATH pour inclure le/lib uniquement lorsque je suis dans l'environnement virtuel.
Je pensais à modifier le script d'activation utilisé par miniconda pour démarrer l'environnement, mais je ne suis pas sûr que ce soit une pratique standard ou s'il existe un moyen plus facile d'y parvenir.
Vous pouvez définir des variables d'environnement lorsqu'un environnement est activé en modifiant le activate.d/env_vars.sh
script. Voir ici: https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux
Les parties clés de ce lien sont:
Recherchez le répertoire de l'environnement conda dans votre fenêtre Terminal, tel que
/home/jsmith/anaconda3/envs/analytics
.Entrez dans ce répertoire et créez ces sous-répertoires et fichiers:
cd /home/jsmith/anaconda3/envs/analytics mkdir -p ./etc/conda/activate.d mkdir -p ./etc/conda/deactivate.d touch ./etc/conda/activate.d/env_vars.sh touch ./etc/conda/deactivate.d/env_vars.sh
Modifier
./etc/conda/activate.d/env_vars.sh
comme suit:#!/bin/sh export MY_KEY='secret-key-value' export MY_FILE=/path/to/my/file/
Modifier
./etc/conda/deactivate.d/env_vars.sh
comme suit::#!/bin/sh unset MY_KEY unset MY_FILE
Lorsque vous exécutez
source activate analytics
, les variables d'environnement MY_KEY et MY_FILE sont définies sur les valeurs que vous avez écrites dans le fichier. Lorsque vous exécutezsource deactivate
, ces variables sont effacées.
Je voulais juste ajouter que vous pouvez déclarer 2 variables dans le fichier activate.d/env_vars.sh, cela facilite la réinitialisation de la variable à l'état de pré-activation:
export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=/your/path:${LD_LIBRARY_PATH}
puis dans deactivate.d/env_vars.sh:
export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
unset OLD_LD_LIBRARY_PATH