Est-ce que quelqu'un sait comment définir automatiquement les variables d'environnement lors de l'activation d'un env dans conda? J'ai essayé d'éditer */bin/activate, mais cela ajoute les nouvelles variables d'environnement pour chaque nouvel env créé. Je veux définir des variables d'environnement spécifiques à chaque environnement.Comment définir des variables d'environnement spécifiques lors de l'activation de l'environnement conda?
Répondre
Utilisez les fichiers $PREFIX/etc/conda/activate.d
et $PREFIX/etc/conda/deactivate.d
, où $PREFIX
est le chemin vers l'environnement.
La réponse acceptée (conda/activate.d
et conda/deactivate.d
) fonctionne assez bien, mais il est peu pratique si vous voulez que les variables d'environnement à la version contrôlée sans mettre tout l'environnement dans le contrôle de version aussi. Généralement, vous souhaitez stocker uniquement le fichier environment.yml
dans le contrôle de version.
(Je comprends que cela ne vaut pas à tous les projets - parfois toute la raison d'utiliser des variables d'environnement est de éviter cette configuration particulière se stockée dans le contrôle de version.)
Ma préférence (sous Windows, mais le même principe s'appliquera sous Linux) est de créer un fichier (version contrôlée) activate.cmd
à la racine du répertoire du projet qui définit la ou les variables environnantes, puis appelle le script activate.bat de conda.
Exemple (un par projet configuration pylint):
set PYLINTRC=%cd%\pylintrc
@activate.bat %cd%\env
Notez que sous Windows au moins, vous devez définir les variables d'environnement avant appeler activate.bat
parce que l'appel à activate.bat
ne retourne jamais au lot d'appel fichier. Vous devez également nommer votre propre script autre chose que activate.bat
pour éviter la récursion, c'est pourquoi j'ai choisi l'extension cmd
(qui est traitée par Windows comme un fichier batch dans ce contexte).
Merci! J'ai créé le dossier $ PREFIX/etc/conda/activate.d, mis env_vars.sh à l'intérieur et spécifié quelques variables env dans env_vars.sh. Les variables d'environnement spécifiées sont chargées lors de l'activation. – PythonRunner
Existe-t-il une solution similaire pour Windows? – Paul
@PythonRunner Merci, c'était tout! Voir [ici] (http://conda.pydata.org/docs/using/envs.html#saved-environment-variables) pour ces instructions. –