[6] Conda czy virtualenv z pip? (Python)

Conda (Continuum) jako narzędzie do zarządzania pakietami oraz środowiskami uruchomieniowymi dla Pythona jest obecnie bardzo popularna wśród środowisk naukowych. Zrozumiałe jest to w przypadku MS Windows który od zawsze był wyzwaniem dla programistów i administratorów wymagając dodatkowych rozwiązań umożliwiających pracę. W ten kierunek dobrze wpisuje się conda. Bez tego rozwiązania instalacja niektórych bibliotek na MS Windows jest dużym problemem.

Jednak w przypadku dystrybucji linuksowych sytuacja jest inna. Środowiska te doskonale nadają się do programowania, obliczeń i zastosowań serwerowych bez dodatkowych dedykowanych (i komercyjnych) narzędzi. Zarządzanie pakietami jest możliwe m.in. dzięki virtualenv oraz pip a instalacja pakietów nie jest zazwyczaj problemem bo bez większego trudu można spełnić wszystkie wymagane zależności.

Co daje zatem sama conda ? Jest to wygodne narzędzie jeśli ktoś korzysta zarówno z MS Windows jak i dystrybucji Linuksa zapewniając zunifikowane warunki uruchomieniowe pracy. W przypadku Linuksa zalety bledną wobec wad tego rozwiązania: uzależnienie od kanałów z dodatkowymi pakietami, konieczność ich własnej budowy dla nowych wersji Pythona (np. w chwili obecnej nie ma nawet zbudowanego pakietu na binstar.org dla psycopg2 a sama baza pakietów (główny kanał) nie dostarcza nawet tak podstawowych binariów). Po co dokładać dodatkową warstwę administracji i kombinować niepotrzebnie przy pakietach? Być może w bardzo zróżnicowanych środowiskach przy zapewnieniu wieloletniego wsparcia rozwiązanie przedstawia wartość dodaną jednak są to przypadki dość rzadko spotykane. Anaconda daje zintegrowane środowisko analizy danych lecz co po tym jeśli brakuje pakietów często używanych.

Tak więc jeśli ktoś nie korzysta z MS Windows to gra nie jest warta trudu. Virtualenv razem z pip w zupełności spełnią wszystkie zadania i przy okazji pozwolą na bieżąco śledzić ewolucję oficjalnego wsparcia dla pakietów w języku Python.