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?
Vous pouvez essayer de cloner la racine qui est la base env.
conda create -n yourenvname --clone root
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.
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.
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.
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.
J'ai trouvé que la méthode la plus simple était la suivante: