10 votes

Exportation d'un environnement conda avec des installations pip locales

J'ai exporté mon environnement actuellement actif avec

conda env export > environment.yml

C'est très pratique puisqu'il garde la trace des paquets installés par conda et pip. Cependant, j'ai quelques paquets (shapely et basemap par exemple) installés localement par pip à partir d'un fichier .whl provenant des paquets compilés de Christoph Gohlke pour Windows. Lorsque j'essaie de recréer mon environnement par

conda env create -f environment.yml

pip renvoie une erreur car il ne peut pas trouver ces paquets dans son index (évidemment). Y a-t-il un moyen d'indiquer à Pip, lors de l'étape d'exportation de Conda, où chercher ces paquets locaux ? On peut supposer que les fichiers .whl se trouvent dans le même répertoire que le fichier environment.yml.

9voto

Jim Points 8793

Il n'y a aucun moyen de faire en sorte qu'il crée des entrées pour la section .whl automatiquement d'après ce que je sais.

Le moyen le plus simple de faire fonctionner cette fonction est de modifier manuellement le fichier environment.yml et en ajoutant l'élément .whl dans la liste sous - pip: . J'ai essayé en téléchargeant le .whl paquet pour nose et le placer dans le même répertoire que mon env.yml la structure ressemblait à ceci :

name: python3_test
dependencies:
- openssl=1.0.2h=1
- pip=8.1.2=py35_0
- python=3.5.1=5
- readline=6.2=2
- setuptools=23.0.0=py35_0
- sqlite=3.13.0=0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.2.2=0
- zlib=1.2.8=3
- pip:
   - nose-1.3.7-py3-none-any.whl

S'il est situé dans un autre répertoire, il suffit de fournir le répertoire. Le chemin, bien sûr, doit être valide lors de l'émission de la commande conda create env .

El pip émise lors de l'exécution de conda env create -n <name> -f <file.yml> est un installation assez simple donc la sémantique de l'installation avec pip depuis la ligne de commande devrait être similaire. Vous pourriez même ajouter l'option url pour le .whl dans le fichier requirements.yml et l'installation se ferait toujours sans problème. Encore une fois, en gardant le reste identique et en utilisant l'url pour le téléchargement nose :

- pip:
   - https://pypi.python.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl#md5=3135984cc9cfcbe5d9c46e166d6743b0

L'utilisation de n'importe quelle url ne devrait pas poser de problème.

1voto

bmjjr Points 1305

Voici un exemple spécifique d'un environment.yml qui utilise une URL pour établir un lien avec les fichiers wheel des paquets compilés de Christoph Gohlke pour Windows :

# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
  - http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl

Référence : https://stackoverflow.com/a/35245610/1493069

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