162 votes

comment spécifier un nouvel emplacement d'environnement pour conda create ?

L'emplacement par défaut des paquets est le dossier .conda dans mon répertoire personnel. cependant, sur le serveur que j'utilise, il y a une limite très stricte de l'espace que je peux utiliser, ce qui m'empêche essentiellement de mettre quoi que ce soit sous mon répertoire personnel. comment puis-je spécifier l'emplacement de l'environnement virtuel que je veux créer ? Merci ! Le serveur fonctionne sous Ubuntu.

14 votes

Y a-t-il un problème avec la réponse ou pourquoi ne l'avez-vous pas acceptée ? Vous pouvez toujours laisser des commentaires s'il y a quelque chose qui ne vous plaît pas.

4 votes

@linX Veillez à toujours noter les réponses que vous aimez et acceptez la réponse qui est la meilleure ou qui résout votre problème. Cela donne aux auteurs une petite récompense et les incite à continuer à donner des réponses bien pensées et utiles.

174voto

Paul Points 2002

Utilisez le --prefix o -p pour spécifier où écrire les fichiers d'environnement. Par exemple :

conda create --prefix /tmp/test-env python=2.7

Créera l'environnement nommé /tmp/test-env qui réside dans /tmp/ au lieu de l'option par défaut .conda .

7 votes

Mais une fois que vous avez déplacé l'emplacement de l'env, comment conda peut-il savoir comment trouver l'emplacement de ce nouvel env ?

5 votes

Il y a un répertoire pour chaque environnement à l'intérieur de ~/.conda/envs. Suivez les conseils des autres et utilisez --prefix pour installer où vous voulez. Créez ensuite un lien symbolique de l'un à l'autre : ln -s /shared/eng/conds/envs/test-env ~/.conda/envs/test-env

2 votes

Pourquoi ne pas conda create --name hbf_env --prefix /om2/user/username python=3.6 travail ? dit -bash: /home/username/.conda/envs/hbf_env/bin/conda: No such file or directory ?

70voto

Darth_Tato Points 201

Comme Paul l'a dit, utilisez

conda create --prefix=/users/.../yourEnvName python=x.x

si vous vous trouvez dans le dossier dans lequel vous voulez créer votre environnement virtuel, omettez simplement le chemin et utilisez

conda create --prefix=yourEnvName python=x.x

conda ne garde la trace que des environnements inclus dans le dossier envs à l'intérieur du dossier anaconda. La prochaine fois que vous aurez besoin d'activer votre nouvel environnement, allez dans le dossier où vous l'avez créé et activez-le avec

source activate yourEnvName

3 votes

Notez que si vous avez oublié le nom de l'environnement, vous pouvez utiliser le chemin COMPLET du répertoire contenant votre environnement

3 votes

Vous pouvez indiquer à conda de rechercher des envs à d'autres endroits en utilisant l'option .condarc le fichier de configuration. conda.io/docs/guide de l'utilisateur/configuration/

0 votes

Cela crée un environnement sans nom, seulement le répertoire. Existe-t-il un moyen de créer un nom dans la déclaration ? Conda ne me laisse pas spécifier les deux.

25voto

dkearn Points 331

Si vous voulez utiliser le --prefix o -p mais que vous voulez éviter d'avoir à utiliser le chemin complet de l'environnement pour l'activer, vous devez modifier l'argument .condarc fichier de configuration avant vous créez l'environnement.

El .condarc se trouve dans le répertoire personnel ; C:\Users\<user> sur Windows. Modifiez les valeurs sous l'onglet envs_dirs pour inclure le chemin personnalisé pour votre environnement. En supposant que le chemin personnalisé est D:\envs le fichier devrait ressembler à quelque chose comme ceci :

ssl_verify: true
channels:
  - defaults
envs_dirs:
  - C:\Users\<user>\Anaconda3\envs
  - D:\envs

Ensuite, lorsque vous créez un nouvel environnement sur ce chemin, son nom apparaîtra avec le chemin d'accès lorsque vous exécutez la commande conda env list et vous devriez pouvoir l'activer en utilisant uniquement le nom, et non le chemin complet.

Capture d'écran en ligne de commande

En résumé, si vous modifiez .condarc d'inclure D:\envs puis exécutez conda env create -p D:\envs\myenv python=x.x entonces activate myenv (ou source activate myenv sur Linux) devrait fonctionner.

J'espère que cela vous aidera !

P.S. Je suis tombé sur ça par essai et erreur. Je pense que ce qui se passe, c'est que lorsque vous modifiez le envs_dirs clé, mises à jour de conda ~\.conda\environments.txt pour inclure les environnements trouvés dans tous les répertoires spécifiés sous la directive envs_dirs afin de pouvoir y accéder sans utiliser de chemin absolu.

25voto

Pendant l'utilisation du --prefix fonctionne, vous devez l'utiliser explicitement à chaque fois que vous créez un environnement. Si vous souhaitez simplement que vos environnements soient stockés ailleurs par défaut, vous pouvez le configurer dans votre fichier .condarc fichier.

Veuillez voir : https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirs

14 votes

Si vous n'avez pas encore modifié cette variable, vous pouvez la configurer en exécutant cette seule commande : conda config --append envs_dirs /path/to/envs

7 votes

Ajoutez également env_prompt: ({name}) dans ~/.condarc si vous obtenez le chemin complet dans votre invite.

0 votes

C'est probablement un cas VRAIMENT spécifique, mais vous devez vous assurer que vous avez un accès en écriture au dossier spécifié dans envs_dirs afin que conda create pour l'utiliser par défaut. L'implémentation est pour conda create pour utiliser le premier répertoire listé, accessible en écriture ( anaconda3/lib/site-packages/conda/base/context.py , _first_writable_envs_dir fonction).

16voto

Vous pouvez le créer comme suit

conda create --prefix C:/tensorflow2 python=3.7

et vous n'avez pas besoin de vous déplacer dans ce dossier pour l'activer.

# To activate this environment, use:
# > activate C:\tensorflow2

Comme vous le voyez, je fais comme ça.

D:\Development_Avector\PycharmProjects\TensorFlow>activate C:\tensorflow2

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>conda --version
conda 4.5.13

3 votes

Bien que l'OP ait dit qu'il utilisait Ubuntu, +1 pour avoir également fourni la solution sur une machine Windows. :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X