Het verschil tussen conda install en pip install.Functievergelijking, enz. [Python]
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.
functie | Conda | pit |
---|---|---|
Pakketinstallatie en beheer | kan | kan |
Schakelen tussen Python-versie | kan | Niet mogelijk (vervangen door pipenv, pyenv) |
Beheer van virtuele omgevingen | kan | Niet 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 installeren | pip installeren | |
---|---|---|
Pakket formaat | バ イ ナ リ | wiel of bron |
コ ン パ イ ル | 不要 | noodzakelijk |
Pakkettype | Andere talen zijn ook mogelijk | alleen python |
Beheer van virtuele omgevingen, versiebeheer | mogelijk | Niet mogelijk (vervangt virtualenv, venv) |
Afhankelijkheidscontrole | ja | な し |
Pakket download bron | anaconda-opslagplaats, anaconda cloud | PyPl |
・ 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!
discussie
Lijst met opmerkingen
Er zijn nog geen reacties