2015-07-30 14 views
25

Vorrei creare un ambiente conda su una macchina che non ha alcuna connessione di rete. Quello che ho fatto finora è:Come posso installare un ambiente conda quando offline?

Su una macchina che è connesso a Internet:

conda create -n python3 python=3.4 anaconda 

Conda archiviata tutti i pacchetti rilevanti in \Anaconda\pkgs. Li ho messi in una cartella separata e l'ho spostato sulla macchina senza connessione di rete. La cartella ha il percorso PATHTO\Anaconda_py3\win-64

ho provato

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

Questo dà il messaggio di errore

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 

Che cosa sto facendo di sbagliato? Come faccio a dire a conda di creare un ambiente basato sui pacchetti in questa directory?

+0

Che cosa significa "conda archiviato"? Quale argomento nel prompt dei comandi stai usando e in riferimento a cosa? – EB88

risposta

1

La directory pkgs non è un canale. La bandiera che stai cercando è --unknown, che fa sì che Conda includa i file nella directory pkgs anche se non sono stati trovati in uno dei canali.

+1

per essere più espliciti: conda create --unknown --offline -n ​​python3 python = 3 – rscohn2

+0

A partire dal 25 settembre 2017, sembra funzionare, quindi non riesce con il seguente: "CondaError: RuntimeError ('EnforceUnusedAdapter chiamato con url https: //repo.continuum.io/pkgs/free/win-64/vs2015_runtime-14.0.25420-0.tar.bz2\nQuesto comando utilizza una connessione remota in modalità offline. \ n ',) ... "(ripetuto 3x) ​​ –

2

Hai provato senza il --offline?

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

questo funziona per me se non sono collegato a Internet se io ho già anaconda sulla macchina, ma in un altro luogo. Se si è connessi a Internet quando si esegue questo comando, si otterrà probabilmente un errore associato a non trovare qualcosa su Binstar.

+0

Qual è il file/directory a cui stai facendo riferimento con 'PATHTO \ Anaconda_py3'? Ho provato questo il 25 settembre 2017, con '~ AppData \ Local \ Continuum \ Anaconda3 \ python.exe' ma ho ottenuto quanto segue:" ATTENZIONE: il server remoto non è riuscito a trovare la directory noarch per il canale richiesto con url: file: /// C:/Users/593260/AppData/Local/Continuum/Anaconda3/python È possibile che abbia fornito a conda un canale non valido. Verifica due volte la configurazione di conda utilizzando 'conda config -show'." –

+0

Si noti che il comando sopra riportato fallirebbe completamente come scritto, separato dal flag '--channel' o dalla mancanza di Internet perché proverà ad assegnare l'ambiente al nome' python = 3.4'. Un nome di ambiente appropriato dovrebbe seguire il flag '-n'. Ho provato a modificare la risposta ma un revisore ha scartato la mia modifica. –

3

Si potrebbe provare la radice di clonazione che è l'env di base.

conda create -n yourenvname --clone root

+2

Questo non funziona più a partire dal 25 settembre 2017. Sono disconnesso dalla rete, quindi ho eseguito 'conda create -n offline --clone root' (ho anche provato un ambiente esistente) e ho ricevuto l'errore: ' CondEError: CondaHTTPError: HTTP Nessuna Nessuna per url Trascorsa: Nessuna Si è verificato un errore HTTP durante il tentativo di recuperare questo URL. Gli errori HTTP sono spesso intermittenti e un semplice tentativo ti porterà sulla tua strada. Errore condA: CondaHTTPErrore: HTTP Nessuno Nessuno per url Trascorso: Nessuno ... ' –

+0

Steven , sei riuscito a trovare una valida soluzione alternativa? – EB88

0

ho trovato il metodo più semplice per essere come segue:

  1. Run 'conda creare --name nomepacchetto' senza parametri speciali
  2. copiare l'URL di il primo pacchetto ha provato (senza successo) per scaricare
  3. Utilizzare l'URL su una macchina connessa per scaricare il tar.bz2
  4. Copiare il tar.bz2 alla/home della macchina offline/utente/anaconda3/pkgs
  5. Distribuire il tar.bz2 in luogo
  6. Eliminare il tar.bz2 ora non necessari
  7. Ripetere fino a quando la 'Conda creare' comando ha esito positivo
+1

Cosa intendi con "deploy the tar.biz. In place" qui? Sto affrontando un problema di download lento, che l'installazione di conda sarebbe scaduta. Sono in Cina dietro la malvagia censura del traffico Internet. Anche se la censura si applica a tutti i download, ma ho trovato il download tramite conda è molto più lento rispetto all'altro download, ad esempio ftp o http download. –

+0

Intendo aprire una finestra di Nautilus in/home/user/anaconda3/pkgs, fare clic con il pulsante destro del mouse su tar.bz2 e selezionare "Estrai qui". – Urhixidur

2

Oltre a copiare la cartella pkgs, è necessario indicizzarlo, in modo che conda sa trovare le dipendenze. Vedere this ticket per ulteriori dettagli e this script per un esempio di indicizzazione della cartella pkgs.

Utilizzare --unknown come suggerisce @asmeurer funzionerà solo se il pacchetto che si sta tentando di installare non ha dipendenze, altrimenti si otterrà un errore "Impossibile trovare alcune dipendenze".

La clonazione è un'altra opzione, ma questo ti darà tutti i pacchetti radice, che potrebbero non essere quello che desideri.