Verwenden von Pip zum Installieren von Paketen in Anaconda Environment

175

conda 4.2.13 MacOSX 10.12.1

Ich versuche, Pakete von pipeiner neuen Umgebung (virtuell) zu installieren, die mit anaconda erstellt wurde. In den Anaconda-Dokumenten heißt es, dass dies vollkommen in Ordnung ist. Dies geschieht genauso wie bei virtualenv.

Aktivieren Sie die Umgebung, in der Sie das Programm ablegen möchten, und installieren Sie dann ein Programm ...

Ich habe in Ananconda eine leere Umgebung wie folgt erstellt:

conda create -n shrink_venv

Aktiviere es:

source activate shrink_venv

Ich kann dann im Terminal sehen, dass ich in meiner Umgebung arbeite (shrink_venv). Das Problem tritt auf, wenn ich versuche, ein Paket zu installieren, indem ich pip:

(shrink_venv): pip install Pillow

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

Ich kann also sehen, dass die Anforderung des systemweiten Pakets erfüllt ist. Es scheint also, dass die Umgebung nicht richtig funktioniert, definitiv nicht wie in den Dokumenten angegeben. Mache ich hier etwas falsch

Nur eine Anmerkung, ich weiß, dass Sie sie conda installfür die Pakete verwenden können, aber ich hatte ein Problem mit Pillow von anaconda, also wollte ich es von bekommen pip, und da die Dokumente sagen, dass das in Ordnung ist.

Ausgabe von which -a pip:

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

** UPDATE ** Ich sehe, dass dies ein ziemlich häufiges Problem ist. Was ich gefunden habe ist, dass die conda env nicht gut mit dem PYTHONPATH spielt. Das System scheint immer in den PYTHONPATH-Positionen zu suchen, selbst wenn Sie eine Conda-Umgebung verwenden. Jetzt laufe ich immer, unset PYTHONPATHwenn ich eine Conda-Umgebung benutze, und es funktioniert viel besser. Ich bin auf einem Mac.

jeffery_the_wind
quelle
9
Hast du es versucht conda install pip?
Languitar
4
Können Sie which -a pipbitte die Ausgabe von zu Ihrer Frage hinzufügen ?
Cel
1
Haben Sie eine PYTHONPATHUmgebungsvariable festgelegt?
Darthbith
1
hatte ein ähnliches Problem. Die explizite Verwendung des Pip, der Teil von Anaconda ist, schien für mich zu funktionieren.
Arsene Lupin
1
Ist es wirklich sicher, Dinge mit Pip und Conda zu installieren? Ich dachte, Sie könnten in Probleme geraten, zum Beispiel nicht zu wissen, welche Version zu deinstallieren ist ...
Charlie Parker

Antworten:

200

Für andere, die in diese Situation geraten, war dies die einfachste Lösung:

  1. Führen Sie conda create -n venv_nameund source activate venv_name, wo venv_nameist der Name Ihrer virtuellen Umgebung.

  2. Ausführen conda install pip. Dadurch wird pip in Ihrem venv-Verzeichnis installiert.

  3. Suchen Sie Ihr Anaconda-Verzeichnis und den tatsächlichen venv-Ordner. Es sollte irgendwo so sein /anaconda/envs/venv_name/.

  4. Installieren Sie dabei neue Pakete /anaconda/envs/venv_name/bin/pip install package_name.

Dies sollte nun erfolgreich Pakete mit dem Pip dieser virtuellen Umgebung installieren!

Windmühle
quelle
2
Hat sich der Pfad für den binOrdner geändert? Ich sehe es nicht mehr im venv_nameOrdner?
Jack
Ich habe gerade versucht, ein neues Venv zu erstellen. Es sieht so aus, als ob sich das binnoch am selben Ort befindet.
Windmühle
2
Hatte keinen 'bin'-Ordner, daher halfen die obigen Schritte. Eine Sache, die ich hinzufügen möchte, ist das Ausführen von 'which pip', um festzustellen, welches 'pip' tatsächlich Pakete installiert, und 'pip freeze' gibt die Liste der in den Umgebungspaketen installierten Pakete an
Mykola
2
Ich habe eine Situation, in der meine Installationen nicht in der Umgebung stattfinden, obwohl meine Quelle aktiviert ist. Sie werden am Standardspeicherort von Python installiert.
Saisumanth Gopisetty
4
Diese Antwort ist weitgehend: Run pipvon Ihrem Conda env (ob es die Umwelt oder nicht ist), und das Paket installieren , dass Sie die Verwendung wollen pipausführbare im Conda Ordner (meinem Fall: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez
80

Alles was Sie tun müssen, ist Anaconda Prompt zu öffnen und einzugeben

pip install package-name

Es wird automatisch in der Anaconda-Umgebung installiert, ohne dass es verwendet werden muss

conda install package-name

Da einige der Conda-Pakete möglicherweise keine Unterstützung für Überstunden bieten, muss sie mit pip installiert werden. Dies ist eine Möglichkeit, dies zu tun

Wenn Sie pip in anaconda installiert haben, können Sie Folgendes in jupyter notebook oder in Ihrer Python-Shell ausführen, die mit anaconda verknüpft ist

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

Überprüfen Sie Ihre Version von pip mit pip.__version__. Wenn es sich um eine Version 10.x.xoder höher handelt, installieren Sie Ihr Python-Paket mit dieser Codezeile

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

In Ihrem Jupyter-Notizbuch können Sie Python-Pakete auf diese Weise über pip in einer Zelle installieren.

!pip install package-name

oder Sie könnten Ihre Python-Version verwenden, die mit Anaconda verbunden ist

!python3.6 -m pip install package-name
Sambeth
quelle
6
Wie können Sie "Anaconda Eingabeaufforderung öffnen"
Thomas Browne
3
Unter Windows müssen Sie mithilfe des
Suchsymbols
@sambeth auf dem Mac?
Parthapratim Neog
1
Ich denke, der Schlüssel ist, den Pip Ihrer Anaconda zu betreiben, der sich unter Ihrer globalen oder spezifischen Anaconda-Umgebung befindet.
Matanster
2
Diese Antwort ist falsch. Der springende Punkt der Frage ist, dass es manchmal nicht in der Umgebung installiert wird. Es wird global installiert. Um dies zu verhindern, müssen Sie zuerst conda install pipin der Umgebung ausgeführt werden, um sicherzustellen, dass Sie eine lokale Version von pip verwenden.
Peastman
33

Ich habe dieses Problem folgendermaßen gelöst:

Wenn Sie einen Nicht-Conda-Pip als Standard-Pip haben, aber Conda-Python Ihr Standard-Python ist (wie unten)

>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

Anstatt nur aufzurufen pip install <package>, können Sie das Modul-Flag -mmit Python verwenden, sodass es die Anaconda-Python für die Installation verwendet

python -m pip install <package>

Dadurch wird das Paket im Anaconda-Bibliotheksverzeichnis und nicht im Bibliotheksverzeichnis installiert, das dem (Nicht-Anaconda-) Pip zugeordnet ist

alex_danielssen
quelle
3
Dies sollte die Antwort sein. Funktioniert perfekt unter Windows.
Geordie
9

Wenn Sie beim Erstellen einer Conda-Umgebung kein Pip hinzugefügt haben

conda create -n env_name pip

und installierte Pip auch nicht in der Umgebung

source activate env_name
conda install pip

Dann ist der einzige Pip, den Sie haben, der System-Pip, der Pakete global installiert.

Bus, wie Sie in dieser Ausgabe sehen können , selbst wenn Sie eines der oben genannten Verfahren ausgeführt haben, ist das Verhalten von Pip in der Conda-Umgebung immer noch undefiniert.

Um sicherzustellen, dass der in der Conda-Umgebung installierte Pip verwendet wird, ohne den langen eingeben zu müssen /home/username/anaconda/envs/env_name/bin/pip, habe ich eine Shell-Funktion geschrieben:

# 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" "$@"
}

Hoffe das ist hilfreich für dich.

Allen Ye
quelle
8

Das hat bei mir funktioniert (siehe Bild verlinkt)

  1. Öffne Anaconda
  2. Wählen Sie im linken Bereich unter "Startseite" die Option "Umgebungen" aus
  3. Rechts neben der ausgewählten Stelle und unterhalb der Leiste "Suchumgebungen" sollte die Basis (root) angezeigt werden. Klick es an
  4. Ein nach rechts zeigendes Dreieck sollte erscheinen. Klicken Sie darauf und wählen Sie "Terminal öffnen".
  5. Verwenden Sie hier den regulären Befehl pip install. Es ist nicht erforderlich, auf eine Umgebung / einen Pfad zu verweisen

Zum späteren Nachschlagen finden Sie den Ordner, in den Ihre Pakete heruntergeladen werden, wenn Sie eine Anforderung bereits erfüllt haben. Sie können es sehen, wenn Sie im Terminal nach oben scrollen. Es sollte so etwas lauten wie: Anforderung bereits erfüllt und dann der Weg

[ Pip installieren Anaconda]

Modatamoprobleme
quelle
3

Für diejenigen, die eine kleine Anzahl von Paketen in Conda mit Pip installieren möchten, verwenden Sie dann:

sudo $(which pip) install <instert_package_name>

arbeitete für mich.

Erklärung

Es scheint mir jedenfalls which pipsehr zuverlässig zu sein, um den Pfad zu finden, an dem Sie sich befinden. Bei Verwendung sudoscheint dies jedoch Pfade umzuleiten oder dies auf andere Weise zu unterbrechen.

Die Verwendung von $(which pip)führt dies unabhängig von den sudooder einem der Befehle aus und ähnelt der Ausführung /home/<username>/(mini)conda(3)/envs/<env_name>/pipunter Linux. Dies liegt daran, $()dass die Textausgabe separat ausgeführt und dem äußeren Befehl hinzugefügt wird.

Kleine Bobby Tische
quelle
3

Alle obigen Antworten basieren hauptsächlich auf der Verwendung von virtualenv. Ich habe gerade eine Neuinstallation von anaconda3 und keine virtuelle Umgebung installiert. Ich habe also eine bessere Alternative dazu gefunden, ohne mich über die Erstellung von virtualenv zu wundern.

Wenn Sie viele Pip- und Python-Versionen unter Linux installiert haben, führen Sie zuerst den folgenden Befehl aus, um alle installierten Pip-Pfade aufzulisten.

whereis pip

Sie erhalten so etwas als Ausgabe.

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

Kopieren Sie den Pfad von pip, den Sie zum Installieren Ihres Pakets verwenden möchten, und fügen Sie ihn nach dem Ersetzen von sudo /home/prabhakar/anaconda3/bin/pipin den folgenden Befehl ein.

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

Das hat bei mir ziemlich gut funktioniert. Wenn Sie Probleme bei der Installation haben, kommentieren Sie bitte.

Prabhakar Prasad
quelle
3

Wenn Sie ein Windows-Betriebssystem verwenden, öffnen Sie die Anaconda-Eingabeaufforderung und geben Sie einactivate yourenvname

Und wenn Sie ein Mac- oder Linux-Betriebssystem verwenden, öffnen Sie Terminal und geben Sie einsource activate yourenvname

yourenvname Hier ist Ihre gewünschte Umgebung, in der Sie das Pip-Paket installieren möchten

Nachdem Sie den obigen Befehl baseeingegeben haben, müssen Sie sehen, dass Ihr Umgebungsname yourenvnamein der Konsolenausgabe von in Ihre eingegebene Umgebung geändert wird (was bedeutet, dass Sie sich jetzt in Ihrem gewünschten Umgebungskontext befinden).

Dann brauchen Sie nur noch einen normalen pip installBefehl, zpip install yourpackage

Auf diese Weise wird das Pip-Paket in Ihrer Conda-Umgebung installiert

Code_Worm
quelle
3

python -m pip install Pillow

Verwendet Pip von aktuellem Python, das mit aktiviert ist

source activate shrink_venv

Intsco
quelle
3

Hängt davon ab, wie Sie Ihre Umgebungsvariable PATH konfiguriert haben. Wenn Ihre Shell den Aufruf von pip auflöst, welches ist der erste Bin, den sie findet?

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

Stellen Sie sicher, dass sich der Ordner bin aus Ihrer Anaconda-Installation vor / usr / lib befindet (abhängig davon, wie Sie pip installiert haben). Also ein Beispiel:

(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

Wir können sehen, dass das djangorestframework in meiner Testumgebung installiert wurde, aber wenn ich meine Basis überprüfe:

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

Es ist leer.

Persönlich möchte ich meine gesamte PATH-Konfiguration mit .pam_environment abwickeln , hier ein Beispiel:

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

Ein zusätzliches Kommet. Die Art und Weise, wie Sie pip installieren, kann zu Problemen führen:

  • Sie sollten Folgendes verwenden: conda install pip -> Neue Pakete, die mit pip installiert wurden, werden zur conda-Liste hinzugefügt.

  • Sie sollten NICHT verwenden: sudo apt install python3-pip -> Neue Pakete werden nicht zur Conda-Liste hinzugefügt (werden also nicht von Conda verwaltet), aber Sie können sie weiterhin verwenden (Konfliktgefahr).

BorjaEst
quelle
Ein zusätzliches Kommet. Die Art und Weise, wie Sie pip installieren, kann zu Problemen führen: - Sie sollten Folgendes verwenden: conda install pip -> Neue Pakete, die mit pip installiert wurden, werden zur conda-Liste hinzugefügt. - Sie sollten nicht verwenden: sudo apt install python3-pip -> Neue Pakete werden nicht zur Conda-Liste hinzugefügt (also nicht verwaltet), aber Sie können sie weiterhin verwenden (Konfliktgefahr).
BorjaEst
Hallo allerseits :) Wie kann ich einen Bin-Ordner entfernen, /usr/libwenn er beim Ausführen vor meinem Anaconda-Bin-Ordner liegt whereis pip?
Lenn
Versuchen Sie sudo apt remove python3-pip, pip aus Ihrer Linux-Distribution zu entfernen und dann in der von Ihnen verwendeten Conda-Umgebung : conda install -c anaconda pip.
BorjaEst
2

Ich hatte ein Problem bei der Installation eines Nicht-Conda-Pakets auf Anaconda. Ich folgte der beliebtesten Antwort hier und es lief nicht gut (möglicherweise, weil sich meine Anaconda im F-Verzeichnis befindet und env in C erstellt wurde und bin-Ordner nicht erstellt wurde. Ich habe keine Ahnung, aber es hat nicht funktioniert.

Laut anaconda ist pip bereits installiert (was mit dem Befehl " conda list" an der anaconda-Eingabeaufforderung gefunden wird), aber pip-Pakete wurden nicht installiert. Also hier ist, was ich getan habe, ich habe pip erneut installiert und dann hat pip das Paket installiert.

conda install pip
pip install see

see ist ein Nicht-Conda-Paket.

Abhijeet sinha
quelle
2

Nun, ich habe alle oben genannten Methoden ausprobiert. Keiner hat für mich gearbeitet. Folgendes hat bei mir funktioniert:

  1. Aktivieren Sie Ihre Umgebung
  2. Laden Sie das .whl-Paket manuell von https://pypi.org/simple/ / herunter.
  3. Navigieren Sie mit aktivierter Umgebung von der Befehlszeile zu dem Ordner, in den Sie die .whl heruntergeladen haben
  4. Führen Sie Folgendes aus: pip install package_name_whatever.whl
MGLondon
quelle
1

Wenn Sie NUR eine Conda-Installation wünschen. Entfernen Sie einfach alle anderen Python-Pfade aus Ihrer PATH-Variablen.

Nur verlassen:

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

Dies ermöglicht es Ihnen, nur zu verwenden pip install *und es wird direkt in Ihre Conda-Installation installiert.

moto
quelle
-1

Ich activate shrink_venvwerde es auch tun. Ich habe versucht, eine neue Umgebung zu erstellen, und meine Conda-Installation erlaubt mir zu Beginn nicht, die Quelle zu verwenden.

Elisavet Fakou
quelle
Sie brauchen sourceam Anfang nicht, wenn Sie unter Windows sind
KWx