Wybierz region
pl
  • PL
  • EN
Wydrukuj

Django – epizod 0, czyli tak właściwie o Virtual Envoirments i PIP w Pythonie

Django jest to jeden z najpopularniejszych frameworków, które istnieją dla Pythona. Służy do szybkiego tworzenia zaawansowanych aplikacji webowych.

We wstępie napisałem, że Django służy do szybkiego tworzenia zaawansowanych aplikacji webowych. Szybkiego – dlatego, że skupia się na stworzeniu zestawu narzędzi tak dobranego, aby nie musieć wymyślać koła na nowo. Sami twórcy określi go słowami: „The web framework for perfectionists with deadlines”. W tej serii artykułów postaram się pokazać podstawy pracy z tym frameworkiem.

Zanim zaczniemy działać z frameworkiem, postaram się omówić dwie podstawowe sprawy związane z Pythonem i łączące się nieodzownie z pracą w języku.

Pierwszą taką rzeczą będą wirtualne środowiska – zwane potocznie venvami (od angielskiego Virtual Envoirments). Służą one do wydzielenia osobnych środowisk deweloperskich lub produkcyjnych, które posiadają własną wersje interpretera Pythona (można przemieszać dla różnych projektów różne wersje), jak również niezależny od globalnego zestaw zainstalowanych pakietów (bibliotek).

Co to oznacza? Załóżmy hipotetyczną sytuację, gdy mamy projekt napisany w Pythonie 3.6. Chcielibyśmy sprawdzić i ewentualnie dostosować nasz projekt pod nowszą wersję Pythona (np. 3.7). Sprawa jest prosta, tworzymy kopię projektu (nie musimy, ale jak chcemy coś korygować to przydałoby się taką mieć – chociaż zawsze można nowego brancha na gicie mieć), tworzymy venva i możemy spokojnie pracować nad projektem, bez obaw, że popsujemy poprzednią instancję Pythona. Również to się tyczy podnoszenia wersji użytych frameworków albo dodatkowych opcji konfiguracyjnych jak zmienne środowiskowe, które maja być skonfigurowane tylko dla danego środowiska.

Przy odrobinie chęci, można pokusić się również o wydzielanie takich środowisk dla każdego użytkownika w systemie, dzięki czemu będzie mógł sobie instalować potrzebne pakiety, bez konieczności podnoszenia uprawnień (o ile środowisko będzie umieszczone w folderze do którego taki użytkownik będzie miał uprawnienia).

Aby rozpocząć pracę z takim środowiskiem, należy mieć zainstalowanego Pythona w potrzebnej nam wersji. Przechodzimy do głównej instalacji (ewentualnie venva z którego chcemy tworzyć następnego venva – rzadko stosowane rozwiązanie), Następnie wykonujemy polecenie:

W ten sposób do wybranej przez nas lokalizacji zostanie utworzone wirtualne środowisko. Aby z niego skorzystać, korzystamy z następującej składni polecenia (uwaga, to zależy przez używanego systemu):

W ten sposób powinna w znaku zachęty pojawić się w nawiasie nazwa naszego venva.

W tym przypadku środowisko po prostu nazywa się venv.

Aktywacja naszego venva powoduje również, że zostaje poprawiona zmienna środowiskowa PATH, zatem wpisanie python w konsole z aktywnym venvem spowoduje, że zostaniemy odesłani do instancji pythona w venvie.

Aby wyjść z środowiska wystarczy wpisać deactivate.

Zintegrowane środowiska programistyczne takie jak PyCharm mają wbudowany mechanizm pozwalający na zarządzanie środowiskami, łącznie z ich tworzeniem i aktywowaniem wraz z włączeniem projektu. Dodatkowo istnieją dodatkowe nakładki ułatwiające z poziomu konsoli pracę z środowiskami takim przykładem jest Virtualenvwrapper.

Kolejną rzeczą jaką należy omówić jest PIP – menadżer paczek dla Pythona. Pozwala on na zarządzanie paczkami dla interpretera (również tego, który w środowisku wirtualnym, po uprzednim wejściu w dane środowisko).

Od wersji Pythona 3.4 jest on domyślnie zainstalowany wraz z Pythonem. W wersjach starszych należy go zainstalować osobno. Korzystanie z niego jest bardzo proste. Instalację pakietu dokonujemy przez polecenie:

Po spacji można podać więcej pakietów, które mają być na raz zainstalowane. Dodatkowo możemy określać wersję instalowanego pakietu np.:

Dodatkowo możemy użyć operatora porównań np.:

Lub użyć operatora kompatybilności, np.:

Co oznacza tyle, że zostanie zainstalowana wersja co najmniej 0.5.1 ale numer wersji musi wpasować się w wyrażenie 0.5.*

Aby usunąć pakiet zamiast install wpisujemy uninstall. Jednak ciekawszym poleceniem jest freeze, który często używa się wraz z przekierowaniem do pliku requirments.txt.

Polecenie powoduje zrzut listy wszystkich paczek zainstalowanych w danym venvie, zrzut jest ten bardzo pomocny ponieważ za pomocą tej listy możemy odtwarzać środowiska po nowym stworzeniu danego venva. Ułatwia to przenoszenie projektów do innych developerów lub na środowiska produkcyjne. Z tak utworzonego pliku możemy skorzystać poprzez:

Spowoduje to zainstalowanie wszystkich paczek w wersjach jakie zostały określone w danym pliku. Dodatkowo taki plik jest analizowany przez GitHub pod względem poszukiwania starych wersji paczek i wskazuje podatności spowodowane przez nie.

Dzięki tym narzędziom będziemy teraz mogli wygodnie zanurzyć się w świat Django i go odkrywać. W następnej części omówimy sam framework Django oraz poznamy strukturę projektu. Może się nawet uda się dodać pierwsze elementy do naszego projektu.


Jakub Szatkowski

Pracuję w Pionie Banków Komercyjnych jako Tester Automatyczny. Entuzjasta Pythona i technologii z nim związanych. W wolnym czasie zajmuję się tworzeniem aplikacji na różne platformy.


Wydrukuj