Python - wprowadzenie

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.

Terminal

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.

Aktywne środowisko 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:

Środowiska condy w anaconda-navigator

To są oczywiście podstawy pracy ze środowiskami condy. Więcej informacji można znaleźć np. tu:

Last updated on 2 Oct 2023
Published on 2 Oct 2023