Der Unterschied zwischen Conda Install und Pip Install.Funktionsvergleich usw. [Python]

2019/5/26

Bisher wurde die Pip-Installation nur dann als Ersatz erkannt, wenn die Conda-Installation nicht verfügbar war.Wenn das gewünschte Paket nicht im Anaconda-Repository enthalten war, habe ich es mit pip installiert, und irgendwann war die Umgebung aufgrund dieser Konflikte beschädigt.

Die Anaconda-Umgebung war beschädigt, als ich dachte, das Jupyter-Notebook würde nicht starten

Da es eine großartige Gelegenheit war, habe ich den Unterschied zwischen pip und conda untersucht, daher werde ich es unten als Memorandum belassen.

Unterschied zwischen Conda und Pip

Was ist Conda?

Kurz gesagt, es handelt sich um einen Paketmanager, der standardmäßig mit Anaconda / Miniconda geliefert wird und ein Umweltmanagementsystem ist.

Anaconda ist eine Plattform, die Pakete für Data Science bereitstellt (wenn Sie den Unterschied zwischen Conda und Pip herausfinden möchten, wissen Sie es bereits). Sie können Programmiersprachen für Data Science wie Python und R sowie Pakete, die für statistische Analysen und maschinelles Lernen erforderlich sind, gleichzeitig installieren und sofort eine Umgebung erstellen, die Python verwendet.
Es gibt auch eine Miniconda mit der Mindestkonfiguration.

conda funktioniert nur, wenn es vom Anaconda-Installationsprogramm oder vom Miniconda-Installationsprogramm installiert wird. Selbst wenn Sie conda in der Umgebung von Python + Pip installieren, können Sie es nicht wie bei der Anaconda-Distribution verwenden.

Was ist pip?

Ein Standard-Python-Paketinstallations- und Paketverwaltungssystem, das mit der Installation von reinem Python geliefert wird.

Es lädt Pakete aus dem Python Package Index (PyPI) herunter und installiert sie, einem Repository für Python-Programmiersprachen.

Unterschiede in jeder Funktion

Die Rollen von Conda und Pip sind in einer einfachen Tabelle zusammengefasst.

機能condaPip
Paketinstallation und -verwaltungKannKann
Python-Version wechselnKannNicht möglich (durch pipenv, pyenv ersetzen)
Verwaltung der virtuellen UmgebungKannNicht möglich (durch pipenv, virtualenv, venv ersetzen)

Da conda auch ein Umgebungsverwaltungssystem ist, können Sie eine virtuelle Umgebung erstellen, die Python-Version auf 3.7 ändern oder auf 2.7 wechseln.

Mit pip installieren und verwenden Sie Pakete wie pyenv (Versionskontrolle) und venv (Verwaltung der virtuellen Umgebung).

Vor kurzem ist pipenv herausgekommen, und es scheint, dass es eine Funktion hat, die conda fast ersetzen kann.

conda installieren und pip installieren

Die Befehle für conda install und pip install sind ähnlich, aber der Mechanismus für die Installation von Paketen scheint ganz anders zu sein. Auf der Website anaconda.com gibt es eine leicht verständliche Vergleichstabelle, daher werde ich sie zitieren (japanisch und modifiziert, um mir das Verständnis zu erleichtern).

conda installierenpip installieren
Paketformatバ イ ナ リRad oder Quelle
Kompilieren不要Notwendig
PakettypAndere Sprachen sind ebenfalls möglichNur Python
Verwaltung der virtuellen Umgebung, VersionsverwaltungMöglichNicht möglich (Ersatz für virtualenv, venv)
Abhängigkeitsprüfungあ りな し
Paket-Download-QuelleAnaconda-Repository, Anaconda-CloudPyPl

・ Conda unterstützt andere Sprachen als Python

Anaconda / Miniconda ist eine plattformübergreifende Lösung, mit der Sie mehrere Programmiersprachen wie Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN und deren Pakete installieren können.

conda kann Softwarepakete, die in verschiedenen Sprachen geschrieben sind, plattformübergreifend installieren.

pip kann nur auf Python-Paketen installiert werden.

-Wenn eine Kompilierung erforderlich ist

Mehr als 1000 Pakete, die mit dem Befehl conda installiert werden können, werden in einem dedizierten Repository namens Anaconda Cloud gespeichert.

Da diese Pakete kompilierte Binärdateien sind, können sie heruntergeladen und installiert werden, ohne dass ein Compiler erforderlich ist.

Die Dateien, die Sie mit pip installieren, enthalten die Quelldateien, die Sie auf der Clientseite kompilieren müssen.

Dies kann je nach Umgebung zu Problemen führen, und es scheint eine der Ursachen zu sein, die beim Erstellen einer Umgebung häufig auftreten.kann sein.Möglicherweise sind externe Abhängigkeiten erforderlich.

・ Gibt an, ob eine Abhängigkeitsprüfung vorliegt oder nicht

Es scheint, dass pip nicht sicherstellt, dass alle Abhängigkeiten bei jeder Installation eines Pakets gleichzeitig erfüllt werden.In diesem Fall treten Konflikte auf, wenn die installierten Pakete unterschiedliche Versionen der Pakete haben, von denen sie abhängen.

conda unterstützt dies, indem es einen SAT-Solver bereitstellt, der Metadaten für alle Pakete sammelt, um Abhängigkeiten zu verstehen.Machen Sie sich bei der Installation schnell mit den komplexen Abhängigkeiten zwischen Paketen vertraut und führen Sie entsprechende Updates und Installationen durch.

・ Unterschied in der Ausführungsgeschwindigkeit

Es gab auch Informationen, dass Matrixoperationen mit numpy, die mit conda installiert wurden, schneller sind.Es hängt von der Art der Berechnung ab, aber es scheint, dass der Unterschied mehr als doppelt so groß ist.

Es gibt verschiedene Implementierungsmethoden für BLAS (Basic Linear Algebra Subprograms), die tatsächlich die von NumPy aufgerufenen Matrixoperationen verarbeiten. Eine davon ist Intel MKL (Math Kernel Library), das von Intel entwickelt wurde.Tatsächlich ist BLAS, das von NumPy aufgerufen wird und von Anaconda installiert wurde, MKL. Wenn NumPy jedoch mit pip installiert wird, wird normalerweise BLAS namens OpenBLAS verwendet, sodass hier möglicherweise ein Leistungsunterschied besteht.

Unterschied in der NumPy-Geschwindigkeit zwischen Anacondas NumPy und Pip-Orizuru

BLAS ist eine Bibliothek, die grundlegende Matrix- und Vektorberechnungen durchführt. Es gibt mehr lebende Ameisen in der Numpy-Bibliothek und ich bin mir nicht sicher ...

"Wie stark sich die Verarbeitungsgeschwindigkeit der Berechnung tatsächlich ändert, hängt vom Unterschied in BLAS ab" und "Wie Sie herausfinden, welches BLAS in Ihrer Umgebung verwendet wird" werden auf den folgenden Seiten ausführlich zusammengefasst.Bitte beziehen Sie sich, wenn Sie möchten.

Es scheint, dass sich die Berechnungsgeschwindigkeit in Abhängigkeit von dem für Numpy [Python] verwendeten BLAS ändert.

Das ist der Unterschied zwischen Conda und Pip.

参照


Conda und Pip verstehen
https://conda.io/en/latest/
Vergleichen Sie die Geschwindigkeiten von Anacondas NumPy und PyPIs NumPy
Stoppen Sie die Installation von Tensorflow mit pip, um die Leistung zu verbessern!