Het verschil tussen conda install en pip install.Functievergelijking, enz. [Python]

2019 年 5 月 26 日

Tot nu toe werd pip install alleen herkend als vervanging wanneer conda install niet beschikbaar was.Als het pakket dat ik wilde niet in de Anaconda-repository stond, installeerde ik het met pip en op een gegeven moment was de omgeving beschadigd door deze conflicten.

De Anaconda-omgeving was beschadigd toen ik dacht dat de Jupyter Notebook niet zou starten

Omdat het een geweldige kans was, heb ik het verschil tussen pip en conda onderzocht, dus ik laat het hieronder als een memorandum achter.

Verschil tussen conda en pip

Wat is Conda

Kortom, het is een pakketbeheerder die standaard bij Anaconda / Miniconda wordt geleverd en is een milieumanagementsysteem.

Anaconda is een platform dat pakketten biedt voor datawetenschap (als je het verschil tussen conda en pip komt ontdekken, weet je het al). U kunt programmeertalen voor datawetenschap zoals Python en R en pakketten die nodig zijn voor statistische analyse en machine learning tegelijk installeren, en u kunt meteen een omgeving bouwen die Python gebruikt.
Er is ook een Miniconda die de minimale configuratie heeft.

conda werkt alleen wanneer geïnstalleerd door het Anaconda-installatieprogramma of het miniconda-installatieprogramma. Zelfs als je conda installeert in de omgeving van python + pip, kun je het niet gebruiken zoals op Anaconda-distributie.

Wat is pip

Een standaard installatieprogramma voor python-pakketten en pakketbeheersysteem dat wordt geleverd met het installeren van pure python.

Het downloadt en installeert pakketten uit de Python Package Index (PyPI), een opslagplaats voor Python-programmeertalen.

Verschillen in elke functie

De rollen van conda en pip zijn samengevat in een eenvoudige tabel.

functieCondapit
Pakketinstallatie en beheerkankan
Schakelen tussen Python-versiekanNiet mogelijk (vervangen door pipenv, pyenv)
Beheer van virtuele omgevingenkanNiet mogelijk (vervangen door pipenv, virtualenv, venv)

Omdat conda ook een omgevingsbeheersysteem is, kunt u een virtuele omgeving bouwen, de Python-versie wijzigen naar 3.7 of overschakelen naar 2.7.

Met pip installeer en gebruik je pakketten zoals pyenv (versiebeheer) en venv (beheer van virtuele omgevingen).

Onlangs is pipenv op de markt gekomen en het lijkt erop dat het een functie heeft die conda bijna kan vervangen.

conda installeren en pip installeren

De commando's voor conda install en pip install zijn vergelijkbaar, maar het mechanisme voor het installeren van pakketten lijkt heel anders te zijn. Er is een gemakkelijk te begrijpen vergelijkingstabel op de anaconda.com-site, dus ik zal het citeren (Japans en aangepast om het voor mij gemakkelijker te maken om het te begrijpen).

conda installerenpip installeren
Pakket formaatバ イ ナ リwiel of bron
コ ン パ イ ル不要noodzakelijk
PakkettypeAndere talen zijn ook mogelijkalleen python
Beheer van virtuele omgevingen, versiebeheermogelijkNiet mogelijk (vervangt virtualenv, venv)
Afhankelijkheidscontrolejaな し
Pakket download bronanaconda-opslagplaats, anaconda cloudPyPl

・ Conda ondersteunt andere talen dan Python

Anaconda / Miniconda is een platformoverschrijdend platform waarmee u meerdere programmeertalen kunt installeren, zoals Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN en hun pakketten.

conda kan softwarepakketten installeren die in verschillende talen zijn geschreven op zijn platformonafhankelijke.

pip kan alleen op Python-pakketten worden geïnstalleerd.

-Of compilatie vereist is

Meer dan 1000 pakketten die kunnen worden geïnstalleerd met het conda-commando, worden opgeslagen in een speciale opslagplaats met de naam Anaconda-cloud.

Aangezien deze pakketten gecompileerde binaire bestanden zijn, kunnen ze worden gedownload en geïnstalleerd zonder dat er een compiler nodig is.

De bestanden die u met pip installeert, bevatten de bronbestanden, die u aan de clientzijde moet compileren.

Afhankelijk van de omgeving kan dit problemen veroorzaken, en het lijkt een van de oorzaken te zijn die vaak struikelen bij het bouwen van een omgeving.kan zijn.Het kan externe afhankelijkheden vereisen.

・ Of er al dan niet een afhankelijkheidscontrole is

Het lijkt erop dat pip er niet voor zorgt dat aan alle afhankelijkheden wordt voldaan telkens wanneer een pakket wordt geïnstalleerd.In dit geval zullen er conflicten optreden als de geïnstalleerde pakketten verschillende versies hebben van de pakketten waarvan ze afhankelijk zijn.

conda ondersteunt dit door een SAT-oplosser te bieden die metadata verzamelt voor alle pakketten om de afhankelijkheden te begrijpen.Begrijp tijdens het installeren snel de complexe afhankelijkheden tussen pakketten en voer de juiste updates en installaties uit.

・ Verschil in uitvoeringssnelheid

Er was ook informatie dat matrixbewerkingen met numpy geïnstalleerd met conda sneller zijn.Het hangt af van het type berekening, maar het lijkt erop dat het verschil meer dan dubbel is.

Er zijn verschillende implementatiemethoden voor BLAS (Basic Linear Algebra Subprograms) die de matrixbewerkingen uitvoeren die door NumPy worden aangeroepen, en een daarvan is Intel MKL (Math Kernel Library) ontwikkeld door Intel.).Eigenlijk is BLAS genaamd vanuit NumPy geïnstalleerd door Anaconda MKL, maar wanneer NumPy wordt geïnstalleerd met pip, wordt meestal BLAS genaamd OpenBLAS gebruikt, dus er is een mogelijkheid dat er hier een verschil in prestatie zal zijn.

Verschil in NumPy-snelheid tussen Anaconda's NumPy en pip-Orizuru

BLAS is een bibliotheek die elementaire matrix- en vectorberekeningen uitvoert. Er zijn meer levende mieren in de numpy-bibliotheek en ik weet het niet zeker ...

"Hoeveel de verwerkingssnelheid van de berekening werkelijk verandert, afhankelijk van het verschil in BLAS" en "Hoe kom je erachter welk BLAS in jouw omgeving wordt gebruikt" worden op de volgende pagina's in detail samengevat.Raadpleeg als je wilt.

Het lijkt erop dat de rekensnelheid verandert afhankelijk van de BLAS die wordt gebruikt voor Numpy [Python]

Dat is het verschil tussen conda en pip.

referentie


Conda en Pip begrijpen
https://conda.io/en/latest/
Vergelijk de snelheden van Anaconda's NumPy en PyPI's NumPy
Stop met het installeren van Tensorflow met pip voor betere prestaties!