wake-up-neo.com

Verwenden von Pip zum Installieren von Paketen in Anaconda Environment

conda 4.2.13 MacOSX 10.12.1

Ich versuche, Pakete aus pip in einer neuen (virtuellen) Umgebung zu installieren, die mit anaconda erstellt wurde. In den Anaconda-Dokumenten heißt es, das ist vollkommen in Ordnung. 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 eine leere Umgebung in Ananconda erstellt:

conda create -n shrink_venv

Aktivieren Sie es:

source activate shrink_venv

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

(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 durch das systemweite Paket erfüllt wird. Es scheint also, dass die Umgebung nicht korrekt funktioniert, definitiv nicht wie in den Dokumenten angegeben. Mache ich hier etwas falsch?

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

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 die PYTHONPATH-Standorte zu schauen, selbst wenn Sie eine Conda-Umgebung verwenden. Jetzt führe ich immer unset PYTHONPATH in einer Conda-Umgebung aus und es funktioniert viel besser. Ich bin auf einem Mac.

55

Für andere, die in diese Situation geraten, habe ich festgestellt, dass dies die einfachste Lösung ist: 

  1. Führen Sie conda create -n venv_name und source activate venv_name aus, wobei venv_name der Name Ihrer virtuellen Umgebung ist. 

  2. Führen Sie conda install pip aus. Dies installiert Pip in Ihrem venv-Verzeichnis. 

  3. Finden Sie Ihr Anaconda-Verzeichnis und finden Sie den aktuellen Ordner. Es sollte irgendwo wie /anaconda/envs/venv_name/ sein. 

  4. Installieren Sie neue Pakete, indem Sie /anaconda/envs/venv_name/bin/pip install package_name ausführen. 

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

54
Windmill

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 es verwenden zu müssen

conda install package-name

Da einigen Conda-Paketen möglicherweise Überstunden fehlen, ist die Installation mit pip erforderlich. Dies ist eine Möglichkeit, dies zu tun

Wenn Sie Pip in Anaconda installiert haben, können Sie Folgendes in einem 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 Version 10.x.x oder 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 auf diese Weise Python-Pakete über pip in einer Zelle installieren.

!pip install package-name

oder Sie könnten Ihre mit anaconda verknüpfte Python-Version verwenden

!python3.6 -m pip install package-name
40
sambeth

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

conda create -n env_name pip

und hat auch Pip nicht in der Umgebung installiert

source activate env_name
conda install pip

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

Bus, wie Sie in diesem issue sehen können, selbst wenn Sie eines der oben genannten Verfahren ausgeführt haben, ist das Verhalten von pip innerhalb einer conda-Umgebung immer noch ein bisschen undefiniert.

Um sicherzustellen, dass der Pip in einer Conda-Umgebung installiert wird, ohne den langen Code /home/username/anaconda/envs/env_name/bin/pip eingeben zu müssen, 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" "[email protected]"
}

Hoffe das ist hilfreich für dich.

5
Allen Ye

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

Sudo $(which pip) install <instert_package_name>

arbeitete für mich.

Erklärung

Für mich scheint which pip sehr zuverlässig zu sein, um den Conda Env Pip-Pfad zu finden, wo Sie sich befinden. Wenn Sie jedoch Sudo verwenden, scheint dies Pfade umzuleiten oder auf andere Weise zu brechen.

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

3
josh

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

Laut Anaconda ist pip bereits installiert (was mit dem Befehl "conda list" auf anaconda Prompt gefunden wird), aber Pip-Pakete wurden nicht installiert. Also hier ist was ich getan habe, ich habe Pip erneut installiert und dann Pip installiert.

conda install pip
pip install see

see ist ein nicht-conda-Paket.

2
Abhijeet sinha

Ich habe dieses Problem folgendermaßen gelöst:

Wenn Sie einen Pip ohne Konda als Standard-Pip haben, aber Konda python als Standard python (siehe 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 pip install <package> aufzurufen, können Sie das Modul-Flag -m mit python verwenden, damit die Anaconda python für die Installation verwendet wird

python -m pip install <package>

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

1
alex_danielssen

wenn Sie Windows-Betriebssystem verwenden, öffnen Sie Anaconda Prompt und geben Sie activate yourenvname ein.

Wenn Sie ein Mac- oder Linux-Betriebssystem verwenden, öffnen Sie Terminal und geben Sie source activate yourenvname ein.

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

nachdem Sie den obigen Befehl eingegeben haben, müssen Sie feststellen, dass Ihr Umgebungsname in der Konsolenausgabe von base in Ihre typisierte Umgebung yourenvname geändert wurde (was bedeutet, dass Sie sich jetzt in Ihrem gewünschten Umgebungskontext befinden).

Dann brauchen Sie nur noch den normalen pip install-Befehl, beispielsweise pip install yourpackage.

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

0
Code_Worm

Wenn SieNUReine Conda-Installation haben möchten. 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

Dadurch können Sie einfach pip install * verwenden und es wird direkt in Ihre Conda-Installation installiert.

0
moto

Nur activate shrink_venv reicht auch. Ich habe versucht, eine neue Umgebung zu erstellen, und meine Conda-Installation erlaubt mir zu Beginn nicht, den Quellcode zu verwenden.

0
Elisavet Fakou

Alle obigen Antworten basieren hauptsächlich auf der Verwendung von Virtualenv. Ich habe gerade eine Neuinstallation von anaconda3 und habe keine Virtualenv installiert. Also habe ich eine bessere Alternative dazu gefunden, ohne mich über das Erstellen von Virtualenv zu wundern.

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

wois 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 des Pip, den Sie für die Installation Ihres Pakets verwenden möchten, und fügen Sie es nach Sudo ein, indem Sie /home/prabhakar/anaconda3/bin/pip im folgenden Befehl ersetzen.

Sudo /home/prabhakar/anaconda3/bin/pip install <package-name>

Das hat für mich ziemlich gut funktioniert. Wenn Sie Probleme bei der Installation haben, kommentieren Sie dies bitte.

0