web-dev-qa-db-fra.com

Comment puis-je installer un environnement conda hors connexion?

Je souhaite créer un environnement conda sur une machine sans connexion réseau. Ce que j'ai fait jusqu'à présent c'est:

Sur une machine connectée à Internet:

conda create -n python3 python=3.4 anaconda

Conda a archivé tous les packages pertinents dans \Anaconda\pkgs. Je les ai mis dans un dossier séparé et je les ai déplacés vers la machine sans connexion réseau. Le dossier a le chemin PATHTO\Anaconda_py3\win-64

J'ai essayé

conda create -n python=3.4 anaconda --offline --channel PATHTO\Anaconda_py3

Cela donne le message d'erreur 

Fetching package metadata:
Error: No packages found in current win-64 channels matching: anaconda

You can search for this package on Binstar with

    binstar search -t conda anaconda

Qu'est-ce que je fais mal? Comment dire à conda de créer un environnement basé sur les paquetages de ce répertoire?

30
WalkingRandomly

Vous pouvez essayer de cloner la racine qui est la base env.

conda create -n yourenvname --clone root

9
Arthur Alvim

En plus de copier le dossier pkgs, vous devez l'indexer afin que conda sache comment trouver les dépendances. Voir ce ticket pour plus de détails et ce script pour un exemple d'indexation du dossier pkgs.

Utiliser --unknown comme @asmeurer suggère que cela ne fonctionnera que si le paquet que vous essayez d'installer ne comporte aucune dépendance, sinon vous obtiendrez une erreur «Impossible de trouver certaines dépendances».

Le clonage est une autre option, mais cela vous donnera tous les paquets root, ce qui peut ne pas être ce que vous voulez.

3
hgcrpd

Avez-vous essayé sans le --offline?

conda create -n anaconda python=3.4 --channel PATHTO\Anaconda_py3

Cela fonctionne pour moi si je ne suis pas connecté à Internet si j'ai déjà un anaconda sur la machine mais à un autre endroit. Si vous êtes connecté à Internet lorsque vous exécutez cette commande, vous obtiendrez probablement une erreur associée au fait de ne pas trouver quelque chose sur Binstar.

2
hsparra

Voici ce qui a fonctionné pour moi sous Linux -

(a) Créer un environnement vide - Créez simplement un répertoire vide sous $ CONDA_HOME/envs. Vérifiez avec - conda info --envs.

(b) Activer le nouvel env - source activer 

(c) Téléchargez le package approprié (* .bz2) à partir de https://anaconda.org/anaconda/repo sur une machine avec connexion Internet et déplacez-le vers l'hôte isolé. 

(d) Installez en utilisant le paquet local - conda install. Par exemple, conda install python-3.6.4-hc3d631a_1.tar.bz2, où python-3.6.4-hc3d631a_1.tar.bz2 existe dans le répertoire en cours.

C'est tout. Vous pouvez vérifier par les moyens habituels (python -V, conda list -n). Tous les packages associés peuvent être installés de la même manière.

1
nocturno

Le répertoire pkgs n'est pas un canal. Le drapeau que vous recherchez est --unknown, ce qui oblige conda à inclure des fichiers dans le répertoire pkgs même s’ils ne se trouvent pas dans l’un des canaux. 

1
asmeurer

J'ai trouvé que la méthode la plus simple était la suivante:

  1. Exécutez 'conda create --name name package ' sans commutateurs spéciaux
  2. Copiez l'URL du premier paquet qu'il a essayé (sans succès) de télécharger
  3. Utilisez l'URL sur une machine connectée pour récupérer le fichier tar.bz2
  4. Copiez le fichier tar.bz2 dans/home / user / anaconda3/pkgs de la machine hors ligne.
  5. Déployer le tar.bz2 en place
  6. Supprimer le fichier tar.bz2 désormais inutile
  7. Répétez l'opération jusqu'à ce que la commande 'conda create' réussisse
0
Urhixidur