Utilizzo di Pip per installare pacchetti in Anaconda Environment


178

conda 4.2.13 MacOSX 10.12.1

Sto cercando di installare i pacchetti da pipun nuovo ambiente (virtuale) creato usando anaconda. Nei documenti di Anaconda dice che va benissimo. È fatto allo stesso modo di virtualenv.

Attiva l'ambiente in cui vuoi inserire il programma, quindi installa un programma pip ...

Ho creato un ambiente vuoto in Ananconda in questo modo:

conda create -n shrink_venv

Attivalo:

source activate shrink_venv

Poi vedo nel terminale che sto lavorando nel mio ambiente (shrink_venv). Il problema si presenta quando provo ad installare un pacchetto usando pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

Quindi posso vedere che pensa che il requisito sia soddisfatto dal pacchetto a livello di sistema. Quindi sembra che l'ambiente non funzioni correttamente, sicuramente non come è stato detto nei documenti. Sto facendo qualcosa di sbagliato qui?

Solo una nota, so che puoi usare conda installper i pacchetti, ma ho avuto un problema con Pillow di anaconda, quindi volevo ottenerlo pip, e poiché i documenti dicono che va bene.

Uscita di which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** AGGIORNAMENTO ** Vedo che questo è un problema piuttosto comune. Quello che ho scoperto è che il conda env non gioca bene con il PYTHONPATH. Il sistema sembra guardare sempre nelle posizioni PYTHONPATH anche quando si utilizza un ambiente conda. Ora corro sempre unset PYTHONPATHquando uso un ambiente conda e funziona molto meglio. Sono su un mac.


9
Hai provato a conda install pip?
languitar

4
puoi aggiungere l'output di which -a pipalla tua domanda per favore?
cel

1
Hai una PYTHONPATHvariabile d'ambiente impostata?
Darthbith,

1
ha avuto un problema simile. L'uso esplicito del pip che fa parte di Anaconda sembrava funzionare per me.
Arsene Lupin,

1
è davvero sicuro installare cose usando pip e conda? Pensavo che potresti avere problemi, come non sapere quale versione correggere la disinstallazione ...
Charlie Parker il

Risposte:


203

Per gli altri che si imbattono in questa situazione, ho scoperto che questa è la soluzione più semplice:

  1. Esegui conda create -n venv_namee source activate venv_name, dove si venv_nametrova il nome del tuo ambiente virtuale.

  2. Corri conda install pip. Questo installerà pip nella tua directory venv.

  3. Trova la tua directory anaconda e trova la cartella venv effettiva. Dovrebbe essere da qualche parte come /anaconda/envs/venv_name/.

  4. Installa nuovi pacchetti facendo /anaconda/envs/venv_name/bin/pip install package_name.

Questo dovrebbe ora installare correttamente i pacchetti usando il pip di quell'ambiente virtuale!


2
Il percorso per la bincartella è cambiato? Non lo vedo più nella venv_namecartella?
Jack,

Ho appena provato a creare un nuovo Venv, sembra che binsia ancora nello stesso posto.
Mulino a vento,

2
Non aveva la cartella "bin", quindi i passaggi precedenti mi hanno aiutato. Una cosa che aggiungerei è l'esecuzione di "quale pip" aiuta a determinare quale "pip" sta effettivamente installando i pacchetti e "pip freeze" fornisce l'elenco dei pacchetti installati nei pacchetti di ambiente
Mykola,

2
Ho una situazione in cui anche se la mia fonte è attivata, le mie installazioni non stanno avvenendo nell'ambiente. Sono installati nella posizione predefinita di Python.
Saisumanth Gopisetty,

4
Questa risposta è in gran parte: Esegui pipdal ENV Conda (se è l'ambiente o non), e installare il pacchetto che si desidera utilizzare il pipfile eseguibile all'interno della cartella Conda (il mio caso: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez

80

Tutto quello che devi fare è aprire il prompt Anaconda e digitare

pip install package-name

Si installerà automaticamente nell'ambiente anaconda senza doverlo usare

conda install package-name

Poiché alcuni dei pacchetti conda potrebbero non avere il supporto degli straordinari, è necessario installare usando pip e questo è un modo per farlo

Se hai installato pip in anaconda puoi eseguire quanto segue nel quaderno jupyter o nella tua shell python collegata ad anaconda

pip.main(['install', 'package-name'])

Controlla la tua versione di pip con pip.__version__. Se è la versione 10.x.xo successiva, installa il tuo pacchetto python con questa riga di codice

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

Nel tuo notebook jupyter, puoi installare i pacchetti python tramite pip in una cella in questo modo;

!pip install package-name

oppure potresti usare la tua versione di Python associata ad Anaconda

!python3.6 -m pip install package-name

6
come "apri il prompt di Anaconda"
Thomas Browne,

3
Su Windows devi cercare "Anaconda Prompt" usando l'icona di ricerca o l'input trovato sulla barra delle applicazioni e aprire
Sambeth,

@sambeth su mac?
Parthapratim Neog,

1
Penso che la chiave sia eseguire il pip della tua anaconda, che si trova sotto l'ambiente globale o specifico della tua anaconda.
matanster

2
Questa risposta non è corretta Il punto centrale della domanda è che a volte non si installa nell'ambiente. Si installa a livello globale. Per evitarlo, devi prima eseguirlo conda install pipall'interno dell'ambiente per assicurarti di utilizzare una versione locale di pip.
contadino

33

Ho risolto questo problema nel modo seguente:

Se hai un pip non conda come pip predefinito ma conda python è il tuo python predefinito (come sotto)

>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python

Quindi, invece di limitarti a chiamare pip install <package>, puoi utilizzare il flag del modulo -mcon Python in modo che utilizzi Python Anaconda per l'installazione

python -m pip install <package>

Ciò installa il pacchetto nella directory della libreria anaconda anziché nella directory della libreria associata al pip (non-anaconda)


3
Questa dovrebbe essere la risposta. Funziona perfettamente su Windows.
Geordie,

9

Se non hai aggiunto pip durante la creazione dell'ambiente conda

conda create -n env_name pip

e inoltre non ha installato pip all'interno dell'ambiente

source activate env_name
conda install pip

quindi l'unico pip che hai è il pip di sistema, che installerà i pacchetti a livello globale.

Bus come puoi vedere in questo problema , anche se hai eseguito una delle procedure sopra menzionate, il comportamento di pip all'interno dell'ambiente conda è ancora un po 'indefinito.

Per assicurarsi di utilizzare il pip installato all'interno dell'ambiente conda senza dover digitare il lungo /home/username/anaconda/envs/env_name/bin/pip, ho scritto una funzione shell:

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

Spero che questo ti sia utile.


8

Questo è ciò che ha funzionato per me (fare riferimento all'immagine collegata)

  1. Apri Anaconda
  2. Seleziona Ambienti nel riquadro a sinistra sotto casa
  3. Appena a destra del punto selezionato e sotto la barra degli "ambienti di ricerca", dovresti vedere base (root). Cliccaci sopra
  4. Dovrebbe apparire un triangolo che punta a destra, fai clic su di esso e seleziona "apri terminale"
  5. Utilizzare qui il normale comando di installazione pip. Non è necessario puntare a un ambiente / percorso

Per riferimento futuro, puoi trovare la cartella in cui stanno scaricando i tuoi pacchetti se ti capita di avere un requisito già soddisfatto. Puoi vederlo se scorri verso l'alto nel terminale. Dovrebbe leggere qualcosa del tipo: requisito già soddisfatto e quindi il percorso

[ pip installa anaconda]


3

Per coloro che desiderano installare un piccolo numero di pacchetti in conda con pip quindi utilizzare,

sudo $(which pip) install <instert_package_name>

ha funzionato per me.

Explainaton

Sembra, per me, che which pipsia molto affidabile per trovare il percorso di conda env pip verso dove ti trovi. Tuttavia, quando si utilizza sudo, questo sembra reindirizzare i percorsi o altrimenti interrompere questo.

L'utilizzo di $(which pip)questo viene eseguito indipendentemente sudodal comando o da uno qualsiasi dei comandi ed è simile all'esecuzione /home/<username>/(mini)conda(3)/envs/<env_name>/pipin Linux. Questo perché $()viene eseguito separatamente e l'output del testo viene aggiunto al comando esterno.


3

Tutte le risposte di cui sopra si basano principalmente sull'uso di virtualenv. Ho appena una nuova installazione di anaconda3 e non ho installato virtualenv. Quindi, ho trovato un'alternativa migliore ad essa senza chiedermi come creare virtualenv.

Se hai molte versioni pip e python installate in linux, esegui prima il comando seguente per elencare tutti i percorsi pip installati.

dove pip

Otterrai qualcosa di simile come output.

pip: / usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

Copia il percorso di pip che desideri utilizzare per installare il pacchetto e incollalo dopo aver sostituito sudo /home/prabhakar/anaconda3/bin/pipnel comando seguente.

sudo /home/prabhakar/anaconda3/bin/pipinstall<package-name>

Questo ha funzionato abbastanza bene per me. In caso di problemi con l'installazione, si prega di commentare.


3

se stai usando il sistema operativo Windows, apri Anaconda Prompt e digitaactivate yourenvname

E se stai utilizzando un sistema operativo Mac o Linux, apri Terminale e digitasource activate yourenvname

yourenvname ecco l'ambiente desiderato in cui si desidera installare il pacchetto pip

dopo aver digitato il comando sopra, devi vedere che il nome del tuo ambiente è cambiato dall'ambiente basedigitato yourenvnamenell'output della console (il che significa che ora sei nel contesto dell'ambiente desiderato)

Quindi tutto ciò che devi fare è un pip installcomando normale, ad espip install yourpackage

In questo modo, il pacchetto pip verrà installato nel proprio ambiente Conda


3

python -m pip install Pillow

Userà pip dell'attuale Python attivato con

source activate shrink_venv


3

Dipende da come hai configurato la tua variabile ambientale PATH. Quando la shell risolve la chiamata al pip, qual è il primo cestino che troverà?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

Assicurati che la cartella bin dell'installazione di anaconda sia prima di / usr / lib (a seconda di come hai installato pip). Quindi un esempio:

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

Possiamo vedere che djangorestframework è stato installato nel mio ambiente di test ma se controllo la mia base:

(base) borja@xxxx:~$ conda list | grep django

È vuoto.

Personalmente mi piace gestire tutta la mia configurazione PATH usando .pam_environment , qui un esempio:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

Una commet in più. Il modo in cui si installa pip potrebbe creare problemi:

  • È necessario utilizzare: conda install pip -> i nuovi pacchetti installati con pip verranno aggiunti all'elenco conda.

  • NON devi usare: sudo apt install python3-pip -> i nuovi pacchetti non verranno aggiunti all'elenco conda (quindi non sono gestiti da conda) ma sarai comunque in grado di usarli (possibilità di conflitto).


Una commet in più. Il modo in cui si installa pip può creare problemi: - È necessario utilizzare: conda install pip -> i nuovi pacchetti installati con pip verranno aggiunti all'elenco conda. - NON DOVETE usare: sudo apt install python3-pip -> i nuovi pacchetti non verranno aggiunti all'elenco conda (quindi non gestiti) ma sarete comunque in grado di usarli (possibilità di conflitto).
BorjaEst

ciao a tutti :) Come posso rimuovere una cartella bin come /usr/libse fosse prima della mia cartella bin anaconda durante l'esecuzione whereis pip?
Lenn,

Provare sudo apt remove python3-pipper rimuovere pip dalla vostra distribuzione Linux e poi in ambiente Conda che si sta utilizzando: conda install -c anaconda pip.
BorjaEst

2

Stavo affrontando un problema nell'installazione di un pacchetto non conda su anaconda, ho seguito la risposta più apprezzata qui e non è andata bene (forse perché la mia anaconda è nella directory F e env creato era nella cartella C e bin non è stato creato, Non ne ho idea ma non ha funzionato).

Secondo anaconda pip è già installato (che si trova usando il comando " conda list" sul prompt di anaconda), ma i pacchetti di pip non venivano installati quindi ecco cosa ho fatto, ho installato di nuovo pip e poi pip ha installato il pacchetto.

conda install pip
pip install see

see è un pacchetto non conda.


2

Bene ho provato tutti i metodi sopra. Nessuno ha funzionato per me. Per me ha funzionato:

  1. Attiva il tuo ambiente
  2. Scarica il pacchetto .whl manualmente da https://pypi.org/simple/ /
  3. Passare alla cartella in cui è stato scaricato .whl dalla riga di comando con l'ambiente attivato
  4. esegui: pip installa package_name_whatever.whl

1

Se solo vuole avere un'installazione Conda. Rimuovi semplicemente tutti gli altri percorsi Python dalla tua variabile PATH.

Solo in partenza:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

Questo ti consente di usare pip install *e si installerà direttamente nella tua installazione di conda.


-1

Anche activate shrink_venvlo farà. Ho provato a creare un nuovo ambiente e la mia installazione di conda non mi consente di utilizzare il sorgente all'inizio.


Non è necessario sourceall'inizio se sei su Windows
KWx
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.