Wiem, że pip
jest menedżerem pakietów dla pakietów Pythona. Jednak widziałem, jak instalacja na stronie internetowej IPython używała conda
do instalacji IPython.
Czy mogę użyć, pip
aby zainstalować IPython? Dlaczego powinienem używać conda
jako innego menedżera pakietów Pythona, skoro już go mam pip
?
Jaka jest różnica między pip
i conda
?
conda
/enpgk
jest skierowany donew users who want to get up and running with minimal effort
: baldachim / Anaconda są samodzielnym environement, że nie kolidują z pytona systemu (jak venv ale większej wydajności). BTW IPyhton, nie iPython (wielka litera I)Odpowiedzi:
Cytowanie z bloga Conda :
Tak więc Conda to narzędzie do pakowania i instalator, którego celem jest zrobienie więcej niż to, co
pip
robi; obsługiwać zależności bibliotek poza pakietami Python, a także same pakiety Python. Conda tworzy również wirtualne środowisko, podobnie jakvirtualenv
robi.W związku z tym Conda należy porównać do Buildout , innego narzędzia, które pozwala obsługiwać zarówno zadania instalacyjne w języku Python, jak i inne niż Python.
Ponieważ Conda wprowadza nowy format opakowania, 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ącpip
zconda install pip
), ale one również nie współpracują ze sobą.Od czasu napisania tej odpowiedzi Anaconda opublikowała nową stronę w Understanding Conda and Pip , która również to przypomina:
i dalej
źródło
pip install
.Oto krótkie podsumowanie:
pypeć
conda
conda build
które buduje pakiety ze źródła, aleconda install
samo instaluje rzeczy z już zbudowanych pakietów Conda.W obu przypadkach:
Pierwsze dwa punkty Conda są naprawdę tym, co czyni przewagę nad pipem w przypadku wielu pakietów. Ponieważ pip instaluje się ze źródła, instalowanie go przy użyciu kodu źródłowego może być bolesne, jeśli nie można skompilować kodu źródłowego (jest to szczególnie prawdziwe w systemie Windows, ale może nawet być prawdziwe w systemie Linux, jeśli pakiety mają trudną bibliotekę C lub FORTRAN zależności). Conda instaluje się z pliku binarnego, co oznacza, że ktoś (np. Continuum) wykonał już ciężką pracę przy kompilowaniu pakietu, 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 setuptools, podczas gdy Conda używa własnego formatu, który ma pewne zalety (takie jak bycie statycznym i znowu agnostyk w Pythonie).
źródło
pip install --use-wheel <package>
zainstaluje zbudowany pakiet. Zobacz tutaj: wheel.readthedocs.org/en/latest . Jednak moje osobiste doświadczenie z kołem polega na tym, że dostępnych jest tak mało naukowych pakietów kół, że jest to czysto akademickie. I oczywiście instalacja pip zwykle nie działa w systemie Windows, jeśli środowisko kompilacji nie jest skonfigurowane właściwie. W tej chwili Conda Ftw.Pozostałe odpowiedzi zawierają rzetelny opis szczegółów, ale chcę podkreślić niektóre punkty wysokiego poziomu.
pip to menedżer pakietów, który ułatwia instalację, aktualizację i deinstalację pakietów python . Działa również z wirtualnymi środowiskami python .
conda to menedżer pakietów dla dowolnego oprogramowania (instalacja, aktualizacja i dezinstalacja). Działa również z wirtualnymi środowiskami systemowymi .
Jednym z celów projektowania conda jest ułatwienie zarządzania pakietami dla całego stosu oprogramowania wymaganego przez użytkowników, z których jedna lub więcej wersji Pythona może być tylko niewielką częścią. 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 wymagającego dystrybucji i zarządzania .
W przypadku zarządzania wersjami pip umożliwia przełączanie między wieloma środowiskami Python i zarządzanie nimi .
Conda pozwala przełączać się między wieloma środowiskami ogólnego przeznaczenia i zarządzać nimi, w których wiele innych wersji może się różnić w różnych wersjach, takich jak biblioteki C, kompilatory, pakiety testowe lub silniki baz danych i tak dalej.
Conda nie jest zorientowana na system Windows, ale w systemie Windows jest zdecydowanie najlepszym rozwiązaniem dostępnym obecnie, gdy wymagane jest zainstalowanie i zarządzanie złożonymi pakietami naukowymi wymagającymi kompilacji.
Chcę płakać, gdy myślę o tym, ile czasu straciłem, próbując skompilować wiele z tych pakietów za pomocą pip w systemie Windows lub debugować nieudane
pip install
sesje, gdy wymagana była kompilacja.Na koniec Continuum Analytics udostępnia także (darmową) witrynę binstar.org (obecnie anaconda.org ), aby umożliwić zwykłym twórcom pakietów tworzenie własnych niestandardowych (zbudowanych!) Pakietów oprogramowania, z których będą mogli korzystać ich użytkownicy
conda install
.źródło
Keras
do mojego kodu, zainstalowałem anakondę na moim komputerze Mac, a Keras jestconda
zainstalowany ipip
zainstalowany. Więc kiedy uruchamiam mój kod w terminalu, skąd mam wiedzieć, którykeras
jest importowany (tenpip
czy tenconda
)?Aby nie mylić Cię dalej, możesz także użyć pipa w swoim środowisku conda, co potwierdza powyższe komentarze menedżerów ogólnych i pythonowych.
możesz również dodać pip do domyślnych pakietów dowolnego środowiska, aby był on obecny za każdym razem, więc nie musisz postępować zgodnie z powyższym fragmentem.
źródło
fully supported
?fully recommended
sugeruje, moim zdaniem, lepiej używać pip niż conda, w środowisku conda, i nie jestem pewien, czy o to ci chodzi?Cytat z artykułu Conda for Data Science na stronie Continuum:
źródło
Cytując z Conda: Mity i nieporozumienia ( pełny opis):
...
Mit nr 3: Conda i pip są bezpośrednimi konkurentami
Rzeczywistość: Conda i pip służą różnym celom i tylko bezpośrednio konkurują w niewielkiej części zadań: instalowaniu pakietów Pythona w izolowanych środowiskach.
Pip, który oznacza P ip I nstall P Pagesages, jest oficjalnie usankcjonowanym menedżerem pakietów Pythona i jest najczęściej używany do instalowania pakietów opublikowanych w Python Package Index (PyPI). Zarówno pip, jak i PyPI są zarządzane i obsługiwane 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 menedżerem środowiska dla wielu platform. Dla użytkownika najbardziej znaczącym rozróżnieniem jest prawdopodobnie to: pip instaluje pakiety Pythona w dowolnym środowisku; conda instaluje dowolny pakiet w środowiskach conda. Jeśli wszystko, co robisz, to instalowanie pakietów Pythona w izolowanym środowisku, conda i pip + virtualenv są w większości wymienne, modulo pewna różnica w obsłudze zależności i dostępności pakietu. Przez środowisko izolowane rozumiem conda-env lub virtualenv, w których możesz instalować pakiety bez modyfikowania systemowej instalacji Pythona.
Nawet odkładając na bok Mit nr 2, jeśli skupimy się na samej instalacji pakietów Pythona, conda i pip służą różnym odbiorcom i różnym celom. Jeśli chcesz, powiedzmy, zarządzać pakietami Python w ramach istniejącej instalacji systemowej Python, 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 Python, które opierają się na zewnętrznych zależnościach (NumPy, SciPy i Matplotlib są częstymi przykładami), a śledzenie tych zależności w znaczący sposób, pip nie może ci pomóc: z założenia, to zarządza pakietami Python i tylko pakietami Python.
Conda i pip nie są konkurentami, ale raczej narzędziami ukierunkowanymi na różne grupy użytkowników i wzorce użytkowania.
źródło
Dla użytkowników WINDOWS
Ostatnio poprawia się sytuacja „standardowych” narzędzi do pakowania:
na samym pypi jest teraz 48% pakietów kół od września. 11 2015 (wzrost z 38% w maju 2015, 24% we wrześniu 2014),
format koła jest teraz obsługiwany natychmiast po instalacji w każdym najnowszym pythonie 2.7.9,
Poprawia się również sytuacja „narzędzi do pakowania” „standardowych” i „poprawek”:
prawie wszystkie pakiety naukowe w formacie koła można znaleźć na stronie http://www.lfd.uci.edu/~gohlke/pythonlibs ,
Projekt mingwpy może przynieść pewnego dnia pakiet „kompilacyjny” dla użytkowników systemu Windows, umożliwiając instalację wszystkiego ze źródła w razie potrzeby.
Opakowanie „Conda” pozostaje lepsze na obsługiwanym rynku i podkreśla obszary, w których „standard” powinien ulec poprawie.
(również specyfikacja zależności wielokrotnego wysiłku, w standardowym systemie kół i systemie conda lub buildout, nie jest bardzo pythoniczna, byłoby miło, gdyby wszystkie te techniki „rdzenia” pakowania mogły się zbiegać, poprzez pewnego rodzaju PEP)
źródło
pip
jest menedżerem pakietów.conda
jest zarówno menedżerem pakietów, jak i menedżerem środowiska.Szczegół:
Bibliografia
źródło
Jasne, oba (pierwsze podejście na stronie)
i (trzecie podejście, drugie to
conda
)są oficjalnie zalecanymi sposobami instalacji .
Jak powiedziano tutaj :
Conda przewyższa pip w ( YMMV )
Odpowiedzi na to szeroko udzielają wszyscy inni.
źródło
pip
jest tylko dla Pythonaconda
dotyczy tylko Anacondy + innych pakietów naukowych, takich jak zależności R itp. NIE każdy potrzebuje Anacondy, która jest już dostarczana z Pythonem. Anaconda jest głównie dla tych, którzy uczą się maszynowego / głębokiego uczenia się itp. Przypadkowy deweloper Python nie uruchomi Anacondy na swoim laptopie.źródło
Mogłem znaleźć jeszcze jedną różnicę o niewielkim charakterze. Mam środowiska Pythona
/usr
raczej niż,/home
czy cokolwiek innego. Aby go zainstalować, musiałbym użyćsudo install pip
. Dla mnie niepożądany efekt ubocznysudo install pip
był nieco inny niż to, co jest powszechnie zgłaszane gdzie indziej: po zrobieniu tak, musiałem biecpython
zsudo
aby zaimportować dowolny zsudo
Zainstalowane pakiety. Zrezygnowałem z tego i ostatecznie znalazłem, że mogę użyćsudo conda
do zainstalowania pakietów w środowisku, w/usr
którym następnie importowałem je normalnie bez potrzebysudo
uzyskania pozwoleniapython
. Nawet zwykłemsudo conda
naprawiać zepsuty,pip
zamiast używaćsudo pip uninstall pip
lubsudo pip --upgrade install pip
.źródło