Ik weet dat pip
een pakketbeheerder is voor pythonpakketten. Ik zag echter dat de installatie op de website van IPython conda
gebruikte om IPython te installeren.
Kan ik pip
gebruiken om IPython te installeren? Waarom zou ik conda
gebruiken als een andere python-pakketbeheerder als ik al pip
heb?
Wat is het verschil tussen pip
en conda
?
Antwoord 1, autoriteit 100%
Citaat uit de Conda-blog:
We zijn al zo lang betrokken bij de pythonwereld en we kennen allemaal pip, easy_install en virtualenv, maar deze tools voldeden niet aan al onze specifieke vereisten. Het grootste probleem is dat ze gefocust zijn op Python, waarbij ze niet-Python-bibliotheekafhankelijkheden negeren, zoals HDF5, MKL, LLVM, enz., Die geen setup.py in hun broncode hebben en ook geen bestanden installeren op de Python-site -pakketten directory.
Conda is dus een verpakkingstool en installatieprogramma dat meer wil doen dan wat pip
doet; omgaan met bibliotheekafhankelijkheden buitenvan de Python-pakketten, evenals de Python-pakketten zelf. Conda creëert ook een virtuele omgeving, zoals virtualenv
dat doet.
Als zodanig moet Conda worden vergeleken met Buildoutmisschien, een ander hulpmiddel waarmee u zowel Python als niet-Python installatietaken.
Omdat Conda een nieuwe verpakkingsindeling introduceert, kunt u pip
en Conda uitwisselen niet gebruiken; pip
kan het Conda-pakketformaat niet installeren. U kunt de twee gereedschappen naast elkaar gebruiken (door pip
te installeren met conda install pip
), maar ze zijn ook niet interoperaat.
Sinds het schrijven van dit antwoord heeft Anaconda een nieuwe pagina op inzicht Conda gepubliceerd en PIP , die dit ook echoën:
Hiermee benadrukt dit een belangrijk verschil tussen Conda en PIP. PIP installeert Python-pakketten, terwijl Conda pakketten installeert die software in elke taal kunnen bevatten. Voor het gebruik van PIP moet bijvoorbeeld een Python-tolk worden geïnstalleerd via een systeempakketbeheerder of door een installatieprogramma te downloaden en te gebruiken. Conda aan de andere kant kan Python-pakketten en de Python-tolk rechtstreeks installeren.
en verder op
Af en toe is een pakket nodig, wat niet beschikbaar is als Conda-pakket, maar is beschikbaar op PYPI en kan met PIP worden geïnstalleerd. In deze gevallen is het logisch om zowel Conda als PIP te gebruiken.
Antwoord 2, Autoriteit 45%
Hier is een korte vervallen:
PIP
- Python-pakketten alleen.
- Compileert alles van bron. EDIT: PIP Installeert nu binaire wielen, als ze beschikbaar zijn.
- Gezegend door de Core Python-community (d.w.z. Python 3.4+ omvat code die automatisch bootstraps pip).
Conda
- Python Agnostic. De belangrijkste focus van bestaande pakketten zijn voor Python, en inderdaad Conda zelf is geschreven in Python, maar je kunt ook Conda-pakketten hebben voor C-bibliotheken, of R-pakketten, of echt alles.
- Installeert binaire bestanden. Er is een tool genaamd
conda build
die pakketten bouwt vanaf de broncode, maarconda install
installeert zelf dingen van reeds gebouwde Conda-pakketten. - Extern. Conda is de pakketbeheerder van Anaconda, de Python-distributie van Continuum Analytics, maar kan ook buiten Anaconda worden gebruikt. Je kunt het gebruiken met een bestaande Python-installatie door pip te installeren (hoewel dit niet wordt aanbevolen, tenzij je een goede reden hebt om een bestaande installatie te gebruiken).
In beide gevallen:
- Geschreven in Python
- Open source (Conda is BSD en pip is MIT)
De eerste twee opsommingstekens van Conda zijn echt wat het voor veel pakketten voordeliger maakt dan pip. Omdat pip vanaf de bron wordt geïnstalleerd, kan het lastig zijn om er dingen mee te installeren als je de broncode niet kunt compileren (dit geldt met name voor Windows, maar het kan zelfs waar zijn op Linux als de pakketten een moeilijke C- of FORTRAN-bibliotheek hebben afhankelijkheden). Conda installeert vanuit binair, wat betekent dat iemand (bijv. Continuum) al het harde werk heeft gedaan om het pakket te compileren, en dus is de installatie eenvoudig.
Er zijn ook enkele verschillen als u geïnteresseerd bent in het samenstellen van uw eigen pakketten. Pip is bijvoorbeeld gebouwd bovenop setuptools, terwijl Conda zijn eigen formaat gebruikt, wat enkele voordelen heeft (zoals statisch zijn, en nogmaals, Python-agnostisch).
Antwoord 3, autoriteit 17%
De andere antwoorden geven een redelijke beschrijving van de details, maar ik wil enkele belangrijke punten benadrukken.
pip is een pakketbeheerder die de installatie, upgrade en verwijdering van python-pakkettenvergemakkelijkt. Het werkt ook met virtuele python-omgevingen.
conda is een pakketbeheerder voor alle software(installatie, upgrade en verwijdering). Het werkt ook met virtuele systeemomgevingen.
Een van de doelen met het ontwerp van conda is om pakketbeheer te vergemakkelijken voor de volledige softwarestack die gebruikers nodig hebben, waarvan een of meer pythonversies slechts een klein onderdeel zijn. Dit omvat bibliotheken op laag niveau, zoals lineaire algebra, compilers, zoals mingw op Windows, editors, versiebeheertools zoals Hg en Git, of wat dan ook dat distributie en beheer vereist.
Voor versiebeheer kunt u met pip schakelen tussen en meerdere python-omgevingen beheren.
Conda stelt u in staat om te schakelen tussen en te beheren meerdere omgevingen voor algemene doeleindenwaarover meerdere andere dingen kunnen variëren in versienummer, zoals C-bibliotheken, of compilers, of testsuites, of database-engines en enzovoort.
Conda is niet op Windows gericht, maar op Windows is het verreweg de superieure oplossing die momenteel beschikbaar is wanneer complexe wetenschappelijke pakketten die moeten worden gecompileerd, moeten worden geïnstalleerd en beheerd.
Ik wil huilen als ik bedenk hoeveel tijd ik heb verloren bij het compileren van veel van deze pakketten via pip op Windows, of bij het debuggen van mislukte pip install
-sessies terwijl compilatie vereist was.
>
Als laatste punt host Continuum Analytics ook (gratis) binstar.org(nu anaconda.org) om reguliere pakketontwikkelaars in staat te stellen hun eigen aangepaste (gebouwde!) softwarestacks te maken die hun pakketgebruikers kunnen conda install
van.
Antwoord 4, autoriteit 4%
Om je niet verder te verwarren,
maar je kunt pip ook gebruiken in je conda-omgeving, wat de algemene versus python-specifieke opmerkingen van managers hierboven valideert.
conda install -n testenv pip
source activate testenv
pip <pip command>
je kunt ook pip toevoegen aan standaardpakketten van elke omgeving, zodat het elke keer aanwezig is, zodat je het bovenstaande fragment niet hoeft te volgen.
Antwoord 5, autoriteit 4%
Citaat uit Conda for Data Scienceartikel op de website van Continuum:
Conda versus pip
Python-programmeurs zijn waarschijnlijk bekend met pip om pakketten van PyPI te downloaden en hun vereisten te beheren. Hoewel zowel conda als pip pakketbeheerders zijn, zijn ze heel verschillend:
- Pip is specifiek voor Python-pakketten en conda is taalonafhankelijk, wat betekent dat we conda kunnen gebruiken om pakketten vanuit elke taal te beheren
Pip compileert vanaf de broncode en conda installeert binaire bestanden, waardoor de last van compilatie wordt weggenomen- Conda maakt native taalonafhankelijke omgevingen, terwijl pip op virtualenv vertrouwt om alleen Python-omgevingen te beheren
Hoewel het wordt aanbevolen om altijd conda-pakketten te gebruiken, bevat conda ook pip, zodat u niet tussen de twee hoeft te kiezen. Als u bijvoorbeeld een python-pakket wilt installeren dat geen conda-pakket heeft, maar beschikbaar is via pip, voert u bijvoorbeeld het volgende uit:
conda install pip
pip install gensim
Antwoord 6, autoriteit 3%
Citatteren van Conda: mythen en misvattingen (een uitgebreide beschrijving):
…
Myth # 3: Conda en PIP zijn directe concurrenten
Reality: Conda en PIP dienen verschillende doeleinden en concurreren alleen direct in een kleine subset van taken: namelijk het installeren van Python-pakketten in geïsoleerde omgevingen.
PIP, die staat voor p ip i nstalls p Ackages, is Python’s officieel gesanctioneerde pakketbeheerder, en wordt het meest gewend aan Installeer pakketten gepubliceerd op de Python-pakketindex (PYPI). Zowel PIP- als PYPI worden bestuurd en ondersteund door de Python-verpakkingsautoriteit (PYPA).
Kortom, PIP is een manager voor algemene doeleinden voor Python-pakketten; Conda is een taal-agnostische cross-platform milieubeheerder. Voor de gebruiker is het meest opvallende onderscheider dit waarschijnlijk: PIP installeert Python-pakketten in elke omgeving; Conda installeert elk pakket binnen Conda-omgevingen. Als alles wat u aan het doen bent, zijn de installatie van Python-pakketten binnen een geïsoleerde omgeving, Conda en PIP + VIRUALENV meestal uitwisselbaar, modulo wat een verschil in afhankelijkheidsverwerking en pakketbeschikbaarheid. Met de geïsoleerde omgeving bedoel ik een Conda-Env of Virtualenv, waarin je pakketten kunt installeren zonder je systeem Python-installatie aan te passen.
Zelfs als we mythe #2 buiten beschouwing laten, als we ons concentreren op alleen de installatie van Python-pakketten, dienen conda en pip verschillende doelgroepen en verschillende doelen. Als u bijvoorbeeld Python-pakketten wilt beheren binnen een bestaande Python-installatie van het systeem, kan conda u niet helpen: door het ontwerp kan het alleen pakketten binnen conda-omgevingen installeren. Als je bijvoorbeeld wilt werken met de vele Python-pakketten die afhankelijk zijn van externe afhankelijkheden (NumPy, SciPy en Matplotlib zijn veelvoorkomende voorbeelden), terwijl je die afhankelijkheden op een zinvolle manier volgt, kan pip je niet helpen: door het ontwerp is het beheert Python-pakketten en alleen Python-pakketten.
Conda en pip zijn geen concurrenten, maar tools die zijn gericht op verschillende groepen gebruikers en gebruikspatronen.
Antwoord 7, autoriteit 3%
pip
is een pakketbeheerder.
conda
is zowel pakketbeheerder als omgevingsbeheerder.
Detail:
Referenties
Antwoord 8, autoriteit 2%
Voor WINDOWS-gebruikers
De situatie met de “standaard” verpakkingstools is recentelijk verbeterd:
-
op pypi zelf zijn er nu 48% van de wielpakketten vanaf sept. 11e 2015 (van 38% in mei 2015 , 24% in sept. 2014),
-
het wielformaat wordt nu out-of-the-box ondersteund volgens de nieuwste python 2.7.9,
De situatie van de “standaard”+”tweaks” verpakkingstools verbetert ook:
-
u kunt bijna alle wetenschappelijke pakketten op wielformaat vinden op http://www .lfd.uci.edu/~gohlke/pythonlibs,
-
het mingwpy-project kan op een dag een ‘compilatie’-pakket opleveren voor Windows-gebruikers, zodat ze alles vanaf de bron kunnen installeren wanneer dat nodig is.
‘Conda’-verpakkingen blijven beter voor de markt die ze bedient en benadrukken gebieden waar de ‘standaard’ moetverbeteren.
(ook de afhankelijkheidsspecificatie meervoudige inspanning, in standaard wielsysteem en in conda-systeem, of buildout, is niet erg pythonisch, het zou leuk zijn als al deze ‘kern’-technieken voor verpakkingen zouden kunnen convergeren, via een soort PEP )
Antwoord 9
Om de oorspronkelijke vraag te beantwoorden:
Voor het installeren van pakketten zijn PIP en Conda verschillende manieren om hetzelfde te bereiken. Beide zijn standaardtoepassingen om pakketten te installeren. Het belangrijkste verschil is de bron van de pakketbestanden.
- PIP/PyPI zal meer “experimentele” pakketten hebben, of nieuwere, minder gebruikelijke versies van pakketten
- Conda heeft doorgaans meer gevestigde pakketten of versies
Een belangrijke kanttekening: als u beide bronnen (pip en conda) gebruikt om pakketten in dezelfde omgeving te installeren, kan dit later problemen veroorzaken.
- De omgeving opnieuw creëren zal moeilijker zijn
- Incompatibiliteit van pakketten wordt ingewikkelder
Het beste is om één applicatie, PIP of Conda, te selecteren om pakketten te installeren en die applicatie te gebruiken om alle pakketten te installeren die je nodig hebt.
Er zijn echter veel uitzonderingen of redenen om pip nog steeds te gebruiken vanuit een conda-omgeving en vice versa.
Bijvoorbeeld:
- Als er pakketten zijn die je nodig hebt die er maar op één bestaan, en de
andere heeft ze niet. - Je hebt een bepaalde versie nodig die maar in één omgeving beschikbaar is
Antwoord 10
Kan ik pip gebruiken om iPython te installeren?
Natuurlijk, zowel (eerste benadering op pagina)
pip install ipython
en (derde aanpak, tweede is conda
)
U kunt IPYTHON van GitHub of PYPI handmatig downloaden. Om er een te installeren
Van deze versies, pak het uit en voer het volgende uit vanaf het hoogste niveau
Bronlijst met behulp van de terminal:pip install .
zijn officieel aanbevolen manieren om te installeren.
Waarom zou ik Conda gebruiken als een andere Python Package Manager wanneer ik al PIP heb?
Zoals gezegd hier :
Als u een specifiek pakket nodig hebt, mag alleen voor één project, of als u het project met iemand anders moet delen, lijkt Conda meer geschikt.
Conda overtreft PIP in (ymmv )
- Projecten die niet-Python-tools gebruiken
- delen met collega’s
- schakelen tussen versies
- Schakelen tussen projecten met verschillende bibliotheekversies
Wat is het verschil tussen PIP en CONDA?
die uitgebreid wordt beantwoord door alle anderen.
Antwoord 11
pip
IS ALLEEN VOOR PYTHON
conda
is alleen voor Anaconda + andere wetenschappelijke pakketten zoals R-afhankelijkheden enz. NIET iedereen heeft Anaconda nodig die al met Python wordt geleverd. Anaconda is vooral bedoeld voor mensen die aan machine learning/deep learning enz. doen. Casual Python-ontwikkelaars kunnen Anaconda niet op zijn laptop gebruiken.
Antwoord 12
Misschien heb ik nog een ander verschil van ondergeschikte aard gevonden. Ik heb mijn python-omgevingen onder /usr
in plaats van /home
of wat dan ook. Om het te installeren, zou ik sudo install pip
moeten gebruiken. Voor mij was de ongewenste bijwerking van sudo install pip
iets anders dan wat elders algemeen wordt gemeld: nadat ik dit had gedaan, moest ik python
uitvoeren met sudo
om een van de sudo
-geïnstalleerde pakketten te importeren. Ik gaf dat op en ontdekte uiteindelijk dat ik sudo conda
kon gebruiken om pakketten te installeren in een omgeving onder /usr
die vervolgens normaal werden geïmporteerd zonder dat sudo
nodig was toestemming voor python
. Ik heb zelfs sudo conda
gebruikt om een kapotte pip
te repareren in plaats van sudo pip uninstall pip
of sudo pip --upgrade install pip
.