Jaka jest różnica między pip a conda?
Wiem, że pip
jest menedżerem pakietów dla pakietów Pythona. Jednak widziałem instalację na stronie IPython za pomocą conda
, Aby zainstalować IPython.
Czy mogę użyć pip
do zainstalowania Ipythona? Dlaczego powinienem używać conda
jako innego menedżera pakietów Pythona, skoro mam już pip
?
Jaka jest różnica między pip
a conda
?
12 answers
Cytowanie z bloga Conda :
Będąc zaangażowanym w świat Pythona tak długo, wszyscy jesteśmy świadomi pip, easy_install i virtualenv, ale te narzędzia nie spełniły wszystkich naszych specyficznych wymagań. Głównym problemem jest to, że są one skupione wokół Pythona, zaniedbując zależności bibliotek innych niż Python, takie jak HDF5, MKL, LLVM, itp., które nie posiadają setup.py w ich kodzie źródłowym, a także nie instalują plików w witrynie Pythona-Pakiety katalog.
Więc Conda jest narzędziem do pakowania i instalowania, które ma na celu więcej niż to, co robi pip
; obsługuje zależności bibliotek poza pakietów Pythona, jak również samych pakietów Pythona. Conda tworzy również wirtualne środowisko, tak jak robi to virtualenv
.
Jako takie Conda powinna być porównywana do Buildout być może, innego narzędzia, które pozwala obsługiwać zarówno Pythonowe, jak i nie-Pythonowe zadania instalacyjne.
Ponieważ Conda wprowadza nowe opakowanie format, nie można używać pip
i Conda zamiennie; pip
nie można zainstalować formatu pakietu Conda. Możesz używać dwóch narzędzi obok siebie (instalując pip
z conda install pip
), ale nie współdziałają one również.
Od napisania tej odpowiedzi Anakonda opublikowała nową stronę na zrozumienie Conda i Pip, co też to powtarza:
To podkreśla kluczową różnicę między conda i pip. Pip instaluje Pakiety Pythona, podczas gdy conda instaluje pakiety, które mogą zawierać oprogramowanie napisane w dowolnym języku. Na przykład, przed użyciem PIP, interpreter Pythona musi być zainstalowany za pomocą menedżera pakietów systemowych lub pobierając i uruchamiając instalator. Conda z drugiej strony może instalować pakiety Pythona, jak również interpreter Pythona bezpośrednio.
I dalej
Czasami potrzebny jest pakiet, który nie jest dostępny jako pakiet conda, ale jest dostępny na PyPI i może być zainstalowany z pip. W tych przypadki, warto spróbować użyć zarówno conda, jak i pip.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-23 11:28:07
Oto krótkie podsumowanie:
Pip
- tylko Pakiety Pythona.
- kompiluje wszystko ze źródła. EDIT: pip instaluje teraz koła binarne, jeśli są dostępne.
- pobłogosławiony przez rdzeniową społeczność Pythona (tzn. Python 3.4 + zawiera kod, który automatycznie uruchamia pip).
Conda
- Python agnostyk. Głównym celem istniejących pakietów jest Python, i rzeczywiście Conda sama jest napisana w Pythonie, ale można również mieć Pakiety Conda dla bibliotek C, lub Pakiety R, lub naprawdę cokolwiek.
- instaluje pliki binarne. Istnieje narzędzie o nazwie
conda build
, które buduje pakiety ze źródeł, aleconda install
samo instaluje rzeczy z już zbudowanych pakietów Conda. - zewnętrzny. Conda jest menedżerem pakietów Anaconda, dystrybucji Pythona dostarczanej przez Continuum Analytics, ale może być również używany poza Anaconda. Możesz go używać z istniejącą instalacją Pythona, instalując go pip (choć nie jest to zalecane chyba że masz dobry powód, aby korzystać z istniejącej instalacji).
W obu przypadkach:
- napisane w Pythonie
- Open source (Conda to BSD, a pip to MIT)
Pierwsze dwa punkty Conda są naprawdę tym, co sprawia, że jest to korzystne nad pip dla wielu pakietów. Ponieważ pip instaluje się ze źródła, może być bolesne instalowanie rzeczy z nim, jeśli nie jesteś w stanie skompilować kodu źródłowego (jest to szczególnie prawdziwe w systemie Windows, ale może to być nawet prawdą w Linuksie, jeśli pakiety mają pewne trudne zależności bibliotek C lub FORTRAN). Conda instaluje się z binarnego, co oznacza, że ktoś (np. Continuum) wykonał już ciężką pracę kompilacji pakietu, a więc instalacja jest łatwa.
Istnieją również pewne różnice, jeśli jesteś zainteresowany budowaniem własnych pakietów. Na przykład, pip jest zbudowany na bazie setuptools, podczas gdy Conda używa własnego formatu, który ma pewne zalety (jak statyczny, i znowu, Python agnostic).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-12-04 08:19:07
Inne odpowiedzi dają rzetelny opis szczegółów, ale chcę podkreślić kilka punktów wysokiego szczebla.
Pip jest menedżerem pakietów, który ułatwia instalację, aktualizację i deinstalację pakietów Pythona . Współpracuje również ze środowiskami wirtualnymi python.
Conda jest menedżerem pakietów dla dowolnego oprogramowania (instalacja, aktualizacja i deinstalacja). Współpracuje również ze środowiskami wirtualnymi system.
Jeden z celów z konstrukcja conda ma na celu ułatwienie zarządzania pakietami dla całego stosu oprogramowania wymaganego przez użytkowników, z czego jedna lub więcej wersji Pythona może stanowić tylko niewielką część. Obejmuje to biblioteki niskiego poziomu, takie jak algebra liniowa, Kompilatory, takie jak MinGW w systemie Windows, edytory, narzędzia kontroli wersji, takie jak Hg i Git, lub cokolwiek innego wymaga dystrybucji i zarządzania.
Do zarządzania wersjami, pip pozwala przełączać się między Pythonem i zarządzać wieloma środowisk.
Conda pozwala na przełączanie się i zarządzanie wieloma środowiskami ogólnego przeznaczenia, w których wiele innych rzeczy może się różnić w numerach wersji, takich jak biblioteki C, Kompilatory, Pakiety testowe, silniki baz danych i tak dalej.
Conda nie jest zorientowana na System Windows, ale w systemie Windows jest zdecydowanie lepszym rozwiązaniem obecnie dostępnym, gdy wymagane jest zainstalowanie i zarządzanie skomplikowanymi pakietami naukowymi wymagającymi kompilacji.
Chcę płakać kiedy myślę o tym, ile czasu straciłem próbując skompilować wiele z tych pakietów przez pip w systemie Windows, lub debugować nieudane sesjepip install
, gdy wymagana była kompilacja.
Jako ostatni punkt, Continuum Analytics również hostuje (za darmo) binstar.org (teraz nazywa się anaconda.org), aby umożliwić zwykłym programistom pakietów tworzenie własnych niestandardowych (built!) stosy oprogramowania, z których będą mogli korzystać ich użytkownicy pakietów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-11 04:55:47
Nie mylić cię dalej, ale możesz również użyć pip w swoim środowisku conda, które sprawdza powyższe komentarze menedżerów General vs. python specific.
conda install -n testenv pip
source activate testenv
pip <pip command>
Możesz również dodać pip do domyślnych pakietów dowolnego środowiska, aby był obecny za każdym razem, więc nie musisz podążać za powyższym fragmentem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-13 14:25:33
Cytat zConda dla Data Science artykuł na stronie Continuum:
Conda vs pip
Programiści Pythona są prawdopodobnie zaznajomieni z pip, aby pobierać pakiety z PyPI i zarządzać ich wymaganiami. Chociaż zarówno conda, jak i pip są menedżerami pakietów, są bardzo różne:
- Pip jest specyficzny dla pakietów Pythona, a conda jest niezależny od języka, co oznacza, że możemy używać conda do zarządzania pakietami z dowolnego języka Pip kompiluje ze źródeł i conda instaluje binaria, usuwając ciężar kompilacji
- Conda tworzy natywnie środowiska niezależne od języka, podczas gdy pip opiera się na virtualenv, aby zarządzać tylko środowiskami Pythona Chociaż zaleca się zawsze używać pakietów conda, conda zawiera również pip, więc nie musisz wybierać między nimi. Na przykład, aby zainstalować pakiet Pythona, który nie ma pakietu conda, ale jest dostępny przez pip, po prostu uruchom, na przykład:
conda install pip
pip install gensim
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-13 11:49:30
Cytowanie z Conda: mity i nieporozumienia (wyczerpujący opis):
...
Mit # 3: Conda i pip są bezpośrednimi konkurentami
Rzeczywistość: Conda i pip służą różnym celom i bezpośrednio konkurują tylko w małym podzbiorze zadań: mianowicie instalując Pakiety Pythona w izolowanych środowiskach.
Pip, co oznacza p ip I nstalls p ackages, jest oficjalnie zatwierdzonym menedżerem pakietów w Pythonie, i jest najczęściej używany do instalowania pakietów opublikowanych w indeksie pakietów Pythona (PyPI). Zarówno Pip, jak i PyPI są zarządzane i wspierane przez Python Packaging Authority (PyPA).
Krótko mówiąc, pip jest menedżerem ogólnego przeznaczenia dla pakietów Pythona; conda jest niezależnym od języka, wieloplatformowym menedżerem środowiska. Dla użytkownika najistotniejszą różnicą jest prawdopodobnie to: pip instaluje Pakiety Pythona w dowolnym środowisku; conda instaluje każdy pakiet w środowiskach conda. If all you instalują Pakiety Pythona w odizolowanym środowisku, conda i PIP + virtualenv są w większości wymienne, modulo pewną różnicę w obsłudze zależności i dostępności pakietów. Przez izolowane środowisko mam na myśli conda-env lub virtualenv, w którym można instalować pakiety bez modyfikowania instalacji Pythona systemu.
Nawet pomijając mit # 2, jeśli skupimy się tylko na instalacji pakietów Pythona, conda i pip służą różnym odbiorcom i różnym celom. Jeśli chcesz, powiedzmy, zarządzać pakietami Pythona w ramach istniejącej instalacji Pythona, conda nie może Ci pomóc: z założenia może instalować pakiety tylko w środowiskach conda. Jeśli chcesz, powiedzmy, pracować z wieloma pakietami Pythona, które opierają się na zewnętrznych zależnościach (NumPy, SciPy i Matplotlib są częstymi przykładami), podczas śledzenia tych zależności w znaczący sposób, pip nie może Ci pomóc: z założenia zarządza pakietami Pythona i tylko pakietami Pythona.
Conda i pip nie są konkurenci, ale raczej narzędzia skupiały się na różnych grupach użytkowników i wzorcach użytkowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 23:44:54
pip
jest menedżerem pakietów.
conda
jest zarówno menedżerem pakietów, jak i menedżerem środowiska.
Szczegóły:
Referencje
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-15 01:48:14
Dla użytkowników WINDOWS
Sytuacja"standardowych" narzędzi opakowaniowych poprawia się ostatnio:
Na samym pypi jest teraz 48% pakietów kół od września. 11. 2015 r. (wzrost z 38% w maju 2015 r., 24% we wrześniu 2015 r. 2014),
Format koła jest teraz obsługiwany od razu po wyjęciu z pudełka dla najnowszego Pythona 2.7.9,
"standard"+"tweaks" packaging Tools sytuacja również się poprawia:
Można znaleźć prawie wszystkie pakiety naukowe w formacie koła na http://www.lfd.uci.edu ~ gohlke / użytkownik,
Projekt mingwpy może pewnego dnia przynieść użytkownikom windows Pakiet "kompilacyjny", pozwalający na zainstalowanie wszystkiego ze źródła w razie potrzeby.
Opakowanie "Conda" pozostaje lepsze dla rynku, który obsługuje, i podkreśla obszary, w których" standard " powinien poprawić.
(również Specyfikacja zależności wielokrotnego wysiłku, w standardowym systemie kołowym i w systemie conda, lub buildout, nie jest zbyt pythoniczny, byłoby miło, gdyby wszystkie te "podstawowe" techniki pakowania mogły się połączyć, poprzez rodzaj PEP)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-21 16:49:05
Aby odpowiedzieć na pierwotne pytanie,
W przypadku instalacji pakietów, PIP i Conda to różne sposoby na osiągnięcie tego samego. Oba są standardowymi aplikacjami do instalowania pakietów. Główną różnicą jest źródło plików pakietu.
- PIP / PyPI będzie miał bardziej" eksperymentalne " pakiety lub nowsze, mniej powszechne wersje pakietów
- Conda Zazwyczaj będzie miała bardziej ugruntowane pakiety lub wersje
Ważna uwaga ostrzegawcza: jeśli używasz obu źródła (pip i conda) do instalacji pakietów w tym samym środowisku, może to powodować problemy później.
- odtworzenie środowiska będzie trudniejsze
- napraw niezgodności pakietu staje się bardziej skomplikowane
Najlepszą praktyką jest wybranie jednej aplikacji, PIP lub Conda, aby zainstalować pakiety, i użycie tej aplikacji do zainstalowania dowolnych pakietów, których potrzebujesz. Istnieje jednak wiele wyjątków lub Powodów, aby nadal używać pip ze środowiska conda i vice versa. Na przykład:
- Gdy potrzebne są pakiety, które istnieją tylko na jednym, a inni ich nie mają.
- potrzebujesz pewnej wersji, która jest dostępna tylko w jednym środowisku
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-13 06:08:22
Czy mogę użyć pip do zainstalowania ipythona?
Jasne, oba (pierwsze podejście na stronie)
pip install ipython
I (trzecie podejście, drugie to conda
)
Możesz ręcznie pobrać IPython z GitHub lub PyPI. Aby zainstalować jeden tych wersji, rozpakować go i uruchomić następujące z najwyższego poziomu katalog źródłowy przy użyciu terminala:
pip install .
Są oficjalnie zalecanymi sposobami instalacji.
Dlaczego powinienem używać conda jako innego menedżera pakietów Pythona, gdy mam już pip?
Jak powiedział tutaj :
Jeśli potrzebujesz konkretnego pakietu, może tylko dla jednego projektu, lub jeśli chcesz podzielić się projektem z kimś innym, conda wydaje się bardziej odpowiednia.
Conda przewyższa pip w ( YMMV)
- Projekty, które używają narzędzi innych niż python]}
- dzielenie się z kolegami
- przełączanie pomiędzy wersjami
- przełączanie między projektami z różnymi wersjami bibliotek
Jaka jest różnica między pip a conda?
To jest szeroko odpowiedział przez wszystkich innych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-25 15:33:36
pip
jest tylko dla Pythona
conda
jest tylko dla Anaconda + inne pakiety naukowe jak R zależności itp. Nie każdy potrzebuje Anakondy, która już jest z Pythonem. Anaconda jest głównie dla tych, którzy zajmują się uczeniem maszynowym / głębokim uczeniem itp. Dorywczo Python dev nie uruchomi Anakondy na swoim laptopie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-03 01:21:19
Znalazłem jeszcze jedną drobną różnicę. Mam swoje środowiska Pythona pod /usr
zamiast /home
czy jakoś tak. Aby go zainstalować, musiałbym użyć sudo install pip
. Dla mnie niepożądany efekt uboczny sudo install pip
był nieco inny niż powszechnie opisywany gdzie indziej: po zrobieniu tego musiałem uruchomić python
z sudo
, Aby zaimportować dowolny z zainstalowanych sudo
pakietów. Zrezygnowałem z tego i w końcu odkryłem, że mogę użyć sudo conda
do zainstalowania pakietów w środowisku pod /usr
, które następnie importowane normalnie bez konieczności sudo
pozwolenia na python
. Użyłem nawet sudo conda
do naprawy uszkodzonego pip
zamiast używać sudo pip uninstall pip
lub sudo pip --upgrade install pip
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-09 12:12:59