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.
Für andere, die in diese Situation geraten, habe ich festgestellt, dass dies die einfachste Lösung ist:
Führen Sie conda create -n venv_name
und source activate venv_name
aus, wobei venv_name
der Name Ihrer virtuellen Umgebung ist.
Führen Sie conda install pip
aus. Dies installiert Pip in Ihrem venv-Verzeichnis.
Finden Sie Ihr Anaconda-Verzeichnis und finden Sie den aktuellen Ordner. Es sollte irgendwo wie /anaconda/envs/venv_name/
sein.
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!
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
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.
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.
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.
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
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
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.
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.
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.