208 votes

Fichier d'environnement pour l'exportation d'Anaconda

Comment puis-je créer un fichier d'environnement anaconda qui pourrait être utilisé sur d'autres ordinateurs ?

J'ai exporté mon environnement python anaconda vers YML en utilisant conda env export > environment.yml . L'export environment.yml contient cette ligne prefix: /home/superdev/miniconda3/envs/juicyenv qui correspond à l'emplacement de mon anaconda, qui sera différent sur d'autres ordinateurs.

11 votes

Je faisais juste quelques tests, et j'ai trouvé que le préfixe est ignoré... je ne sais pas pourquoi il est dans l'export env. Vous devriez être en mesure de faire conda env create -f environment.yml Juste en passant, d'après mon expérience, cela ne fonctionnera pas sur toutes les plateformes, parce que conda env listera de nombreuses dépendances telles que ` vs2015_runtime` si vous êtes sous Windows. Mais bien sûr, cela n'est pas disponible sur linux.

5 votes

Conda recommande en fait de créer le environment.yml à la main, vous pouvez donc le laisser de côté. stackoverflow.com/questions/39280638/

0 votes

Notez qu'il existe de bonnes instructions pour cela dans les docs maintenant ; je suppose que cette section n'existait pas lorsque ces réponses ont été écrites à l'origine.

5voto

Nicole Finnie Points 941

Je trouve que l'exportation des paquets au format chaîne seulement est plus portable que l'exportation de l'ensemble des paquets. conda l'environnement. Comme l'a déjà suggéré la réponse précédente :

$ conda list -e > requirements.txt

Cependant, cette requirements.txt contient des numéros de build qui ne sont pas portables entre systèmes d'exploitation, par exemple entre Mac et Ubuntu . Sur conda env export nous avons la possibilité --no-builds mais pas avec conda list -e Nous pouvons donc supprimer le numéro de build en lançant la commande suivante :

$ sed -i -E "s/^(.*\=.*)(\=.*)/\1/" requirements.txt 

Et recréer l'environnement sur un autre ordinateur :

conda create -n recreated_env --file requirements.txt

0 votes

sed a bien fonctionné. J'ai dû supprimer une version du patch. Donc major.minor.patch a major.minor et ça a marché. Il s'avère que le numéro de patch inférieur avait été abandonné par les dépôts principaux.

2voto

Bo Scho Points 11

Pour moi, la procédure donnée par Conda a fonctionné :

https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#sharing-an-environment

Mais seulement s'il est exécuté dans une console/un prompt anaconda.

Le terminal VSCode a seulement généré un fichier yml avec un chemin vers mon environnement, mais pas de liste explicite des paquets dans les dépendances.

0 votes

En particulier, il semble que les étapes souhaitées se trouvent dans la sous-section Exportation d'un fichier d'environnement sur plusieurs plateformes . Je suppose que ce document n'existait pas jusqu'à récemment. Bien que, avec le --from-history option, pip les paquets ne sont pas inclus. Donc, si vous avez certains de ces paquets, vous devez les ajouter manuellement (ils peuvent être copiés depuis l'exportation complète).

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