01 - Conda
Conda
Anaconda pozwala w stosunkowo łatwy sposób instalować różnorodne pakiety, czyli mówiąc w pewnym uproszczeniu, kod gotowy do wykorzystania (zob. 12 - Funkcje, moduły i pakiety), z których niewielką część wykorzystujemy na kursie. To bogactwo może niekiedy sprawiać problemy, ponieważ prawidłowe działanie danego pakietu może zależeć od zainstalowania w systemie konkretnej wersji innego pakietu, który z kolei… itd. Jak można przypuszczać, czasem tworzą się łańcuchy i sieci takich zależności, czasem wzajemnie sprzecznych, których nie sposób rozwikłać. Co więcej czasem możemy potrzebować do uruchomienia różnych programów, różnych wersji Pythona.
Na szczęście sytuacja nie jest tak beznadziejna, jak mogłoby się wydawać, ponieważ mamy takie narzędzia jak conda
które pozwalają poradzić sobie z tym galimatiasem. W jaki sposób? Conda
pozwala tworzyć środowiska (ang. environments), które możemy traktować jak osobne instalacje Pythona oraz wybranych modułów, które razem pozwalają nam na pisanie i/lub uruchamianie programów pisanych w Pythonie o konkretnych wymaganiach. Domyślnym środowiskiem jest base
, można na nim pracować ale zaleca się jednak, żeby do każdego projektu używać osobnego środowiska condy
. Zwłaszcza jeśli będziesz rozwijać swoje umiejętności programowania i tworzyć coraz bardziej złożone programy, może się to okazać niezbędne. Zatem poznajmy podstawy pracy z narzędziem conda
.
Chociaż można pracować ze środowiskami condy używając anaconda-navigator
, pokażę kilka podstawowych poleceń, które można uruchomić z linii komend. Zatem należy otworzyć pod windows anaconda-prompt
lub terminal pod Linuksem albo systemem Mac OS.
Przykładowo, tak wygląda terminal pod Linuksem z aktywnym środowiskiem base
.
Obecnie utworzone środowiska można sprawdzić komendą:
conda info --envs
Wynik:
# conda environments:
#
base * /home/grzeg/anaconda3
Jak widać, mam na razie jedno środowisko - base
.
Utwórzmy zatem nowe środowisko o nazwie zajęcia
:
conda create --name zajecia
Pojawia się pytanie, czy kontynuować.
Proceed ([y]/n)?
Zatwierdzam wciskając enter.
Pojawiają się komunikaty oraz instrukcja jak włączyć i wyłączyć środowisko.
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate zajecia
#
# To deactivate an active environment, use
#
# $ conda deactivate
Sprawdzam dostępne środowiska:
conda info --envs
Tym razem mamy do wyboru dwa środowiska:
# conda environments:
#
base * /home/grzeg/anaconda3
zajecia /home/grzeg/anaconda3/envs/zajecia
Usuwanie środowiska można wykonać tak:
conda remove --name zajecia --all
Środowisko możemy tez sklonować, czyli utworzyć nowe środowisko na podstawie istniejącego. Np. utwórzmy ponownie środowisko zajęcia
na podstawie base
:
conda create --name zajecia --clone base
Sprawdźmy rezultat:
conda info --envs
Wynik:
conda env list
# conda environments:
#
base * /home/grzeg/anaconda3
zajecia /home/grzeg/anaconda3/envs/zajecia
Aktywuję środowisko:
conda activate zajecia
Po wykonaniu polecenia pojawia się informacja o aktywnym środowisku zajecia
.
Teraz możemy zainstalować w tym środowisku pakiet, np. biopython
:
conda install biopython
Tworząc nowe środowisko można np. sprecyzować jakiej wersji Pythona chcemy w niej używać. Może się np. okazać, że napisany w Pythonie program, który chcemy uruchomić wymaga Pythona 2 (a nie Pythona 3, który zainstalowaliśmy.
conda create -n python2 python=2.7
Teraz aktywujemy środowisko:
conda activate python2
Sprawdźmy wersję Pythona:
python --version
Wynik:
Python 2.7.18 :: Anaconda, Inc.
Możemy teraz deaktywować środowisko python2
i wrócić do poprzedniego:
conda deactivate
Jeśli w bieżącym środowisku chcemy zainstalować pakiet w określonej wersji, to również możemy to zrobić, np:
conda install matplotlib=3.3.1
Jeśli chcemy w jupyter-lab
zmieniać środowiska, robimy to poprzez zmiany kernela (Kernel -> Change kernel…). Trzeba jednak najpierw stworzyć kernel dla wybranego środowiska. Zróbmy to np. dla cwiczenia
:
conda activate cwiczenia
python -m ipykernel install --user --name cwiczenia --display-name "Python (cwiczenia)"
Teraz przy zmianie kernela pojawi się opcja “Python (cwiczenia)”, także będziemy mogli wybrać odpowiedni “Notebook” po uruchomieniu jupyter-lab
.
Ze środowiskami narzędzia conda
możemy pracować też z poziomu anaconda-navigator
, wybierając w panelu po lewej stronie Environments
:
To są oczywiście podstawy pracy ze środowiskami condy
. Więcej informacji można znaleźć np. tu: