Blog / Baza Wiedzy

Jak skonfigurować Python Venv na Ubuntu

7 min czytania
Jak skonfigurować Python Venv na Ubuntu

Wprowadzenie

Zarządzanie zależnościami języka Python na serwerze produkcyjnym często prowadzi do konfliktów. Instalowanie pakietów globalnie za pomocą pip niesie ze sobą ryzyko uszkodzenia narzędzi systemowych, które polegają na konkretnych wersjach bibliotek. W nowoczesnych dystrybucjach Ubuntu problem ten został dodatkowo rozwiązany przez PEP 668, który ogranicza globalną instalację pakietów w celu zapewnienia stabilności systemu.

Standardowym rozwiązaniem w branży jest środowisko wirtualne, czyli venv. Izolując zależności projektu w lokalnym katalogu, zyskujesz pewność, że aplikacja posiada dokładnie to, czego potrzebuje, nie zakłócając przy tym działania systemu operacyjnego ani innych projektów hostowanych na Twoim VoxiHost Premium VPS.

Ten przewodnik przedstawia bezpośrednie i konkretne podejście do konfiguracji izolowanych środowisk Python. Przejdziemy przez proces instalacji niezbędnego modułu, utworzymy czysty obszar roboczy oraz aktywujemy środowisko, aby bezpiecznie instalować pakiety. Niezależnie od tego, czy uruchamiasz lekki mikroserwis na Budget VPS, czy zarządzasz złożonymi potokami danych, ta konfiguracja stanowi fundament profesjonalnego programowania w języku Python na systemach Linux.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że Twój serwer spełnia minimalne wymagania dla stabilnego środowiska programistycznego. Zalecamy posiadanie co najmniej 512 MB pamięci RAM oraz 1 rdzenia procesora, co stanowi standard dla naszych instancji Budget VPS oraz Premium VPS.

Powinieneś posiadać dostęp do serwera z systemem Ubuntu 22.04 LTS lub nowszym oraz użytkownika innego niż root, który posiada uprawnienia sudo. Jeśli nie skonfigurowałeś jeszcze swojego konta administracyjnego, zapoznaj się z naszym przewodnikiem Jak dodać użytkownika sudo na Ubuntu, aby upewnić się, że nie uruchamiasz zadań programistycznych jako użytkownik root.

Dodatkowo potwierdź, że zegar systemowy jest zsynchronizowany, aby uniknąć błędów SSL podczas pobierania pakietów. Powinieneś również upewnić się, że lista pakietów APT jest aktualna, aby uniknąć problemów z rozwiązaniem zależności. Choć na tym etapie nie jest wymagany żaden konkretny kod w języku Python, oczekuje się podstawowej znajomości wiersza poleceń.

Na koniec sprawdź, czy masz wystarczającą ilość miejsca na dysku w katalogu projektu, aby pomieścić strukturę środowiska wirtualnego, która zazwyczaj zajmuje kilka megabajtów na pliki podstawowe oraz rozmiar wszelkich zależności specyficznych dla projektu, które zamierzasz zainstalować później.

Sesja terminala wyświetlająca sprawdzenie zasobów systemowych i walidację użytkownika przed rozpoczęciem instalacji Python venv

Krok 1: Instalacja modułu Python Venv

Nowoczesne wersje systemu Ubuntu zawierają domyślnie zainstalowany język Python, jednak moduł wymagany do tworzenia izolowanych środowisk jest często pomijany w podstawowej instalacji w celu oszczędności miejsca. Aby zarządzać zależnościami projektów bez zaśmiecania globalnych pakietów systemowych, należy zainstalować pakiet python3-venv. Zapewnia to zgodność z wytycznymi PEP 668, które ograniczają globalne instalacje za pomocą pip w nowszych wydaniach Ubuntu, aby zapobiec konfliktom z oprogramowaniem na poziomie systemu.

Należy wykonać poniższe polecenia, aby zaktualizować lokalny indeks pakietów i pobrać niezbędny moduł do systemu:

## Aktualizacja indeksu pakietów i instalacja modułu środowiska wirtualnego
sudo apt update
sudo apt install -y python3-venv

Ta instalacja dostarcza moduł venv, który umożliwia tworzenie lekkich, odizolowanych środowisk Python. Po zakończeniu procesu warto zweryfikować instalację, sprawdzając wersję języka Python. Choć nie potwierdza to bezpośrednio obecności samego modułu, zapewnia, że środowisko jest gotowe do kolejnych kroków:

## Weryfikacja instalacji języka Python
python3 --version

W przypadku korzystania z VoxiHost Premium VPS, operacja ta zakończy się w kilka sekund. Jesteś teraz gotowy do zainicjowania swojego pierwszego wirtualnego środowiska wewnątrz dedykowanego katalogu projektu.

Wyjście terminala pokazujące pomyślną instalację pakietu python3-venv za pomocą apt

Krok 2: Utworzenie katalogu projektu

Zanim zainicjujesz środowisko, potrzebujesz uporządkowanej przestrzeni roboczej dla kodu aplikacji oraz jej zależności. Przechowywanie projektów w oddzielnych katalogach zapobiega bałaganowi w plikach i ułatwia zarządzanie wieloma środowiskami na serwerze VoxiHost.

Przejdź do swojego katalogu domowego lub dedykowanego folderu dla swoich projektów programistycznych, a następnie utwórz nowy katalog dla konkretnego zadania:

## Utwórz nowy katalog projektu i przejdź do niego
mkdir -p ~/my_python_project
cd ~/my_python_project

Terminal pokazujący tworzenie katalogu projektu

Krok 3: Tworzenie i aktywacja środowiska wirtualnego

Gdy katalog projektu jest już gotowy, można zainicjować środowisko wirtualne. Użyjemy modułu venv, aby wygenerować lokalny katalog o nazwie venv. Ten folder będzie zawierał samodzielny plik binarny języka Python oraz własny instalator pip, skutecznie izolując projekt od reszty systemu operacyjnego.

## Inicjalizacja środowiska wirtualnego w bieżącym folderze
python3 -m venv venv

Po wykonaniu tego polecenia w bieżącej ścieżce pojawi się nowy katalog venv. Katalog ten przechowuje wszystko, co jest potrzebne do uruchomienia projektu bez konieczności posiadania uprawnień administratora. Nie należy używać sudo w tym kroku ani w żadnych kolejnych operacjach zarządzania pakietami wewnątrz tego środowiska, ponieważ może to spowodować problemy z uprawnieniami, które uszkodzą konfigurację projektu. Następnie należy aktywować środowisko, aby rozpocząć korzystanie z lokalnych plików binarnych:

## Aktywacja środowiska wirtualnego
source venv/bin/activate

Po aktywacji zauważysz, że znak zachęty terminala zmienił się i zawiera teraz (venv) na początku. Ten wskaźnik wizualny potwierdza, że wszelkie kolejne polecenia, takie jak python lub pip, wskazują teraz na pliki binarne znajdujące się wewnątrz folderu projektu, a nie na domyślne pliki systemowe.

Uwaga: Jeśli po aktywacji narzędzie pip nie jest dostępne, można upewnić się, że jest zainstalowane, wykonując polecenie python3 -m ensurepip --upgrade. Spowoduje to bezpieczną instalację menedżera pakietów bezpośrednio w środowisku wirtualnym bez wpływu na system hosta.

W tym momencie serwer VoxiHost jest poprawnie skonfigurowany do lokalnego programowania. Możesz teraz bezpiecznie instalować biblioteki specyficzne dla projektu za pomocą pip install <nazwa_pakietu>. Ponieważ korzystasz ze środowiska wirtualnego, pakiety te pozostaną zamknięte wewnątrz katalogu ~/my_python_project/venv, utrzymując system w czystości i unikając konfliktów z innymi aplikacjami.

Terminal pokazujący aktywowane środowisko wirtualne z prefiksem (venv) w znaku zachęty

Krok 4: Zarządzanie pakietami wewnątrz środowiska

Po aktywacji środowiska możesz zarządzać zależnościami projektu bez konieczności posiadania uprawnień administratora. Podstawowym narzędziem do tego celu jest pip, standardowy instalator pakietów dla języka Python. Ponieważ Twój powłoka wskazuje obecnie na izolowane pliki binarne venv, każda zainstalowana biblioteka zostanie zapisana wyłącznie w folderze projektu.

Aby zainstalować pakiet, taki jak requests, uruchom:

## Zainstaluj pakiet wewnątrz wirtualnego środowiska
pip install requests

Możesz zweryfikować, czy biblioteka została poprawnie zainstalowana, wyświetlając listę aktualnie dostępnych pakietów w Twoim środowisku:

## Wyświetl listę wszystkich zainstalowanych pakietów w bieżącym venv
pip list

Jeśli pracujesz nad wspólnym projektem lub przenosisz swój kod na produkcyjny serwer VoxiHost, powinieneś wygenerować plik z wymaganiami. Pozwala to na dokładne śledzenie wersji bibliotek, których wymaga Twój projekt:

## Eksportuj zależności bieżącego środowiska do pliku
pip freeze > requirements.txt

Plik requirements.txt jest standardem w branży, służącym do utrzymywania spójnych środowisk na różnych maszynach. Jeśli kiedykolwiek zajdzie potrzeba odtworzenia tego środowiska na innym serwerze, możesz zainstalować wszystkie zależności jednocześnie, używając polecenia pip install -r requirements.txt.

Uwaga: Nigdy nie używaj sudo podczas uruchamiania pip wewnątrz wirtualnego środowiska. Użycie sudo może spowodować błędy uprawnień do plików i nieumyślnie zainstalować pakiety w systemowym katalogu Pythona, co narusza izolację, którą właśnie ustanowiłeś.

Terminal pokazujący wynik instalacji pip oraz wygenerowany plik requirements.txt wewnątrz aktywnego venv

Podsumowanie

Pomyślnie utworzyłeś odizolowane środowisko Python w swoim systemie. Rezygnując z globalnego zarządzania pakietami, wyeliminowałeś ryzyko konfliktów zależności i zapewniłeś przenośność oraz stabilność swoich projektów. Ten sposób pracy jest szczególnie istotny podczas wdrażania aplikacji na serwerze VoxiHost Premium VPS lub Budget VPS, gdzie utrzymanie czystego stanu systemu jest niezbędne dla długoterminowej kondycji serwera.

Pamiętaj, że środowiska wirtualne są tymczasowe. Jeśli zajdzie potrzeba aktualizacji zależności, wystarczy ponownie aktywować środowisko za pomocą polecenia source venv/bin/activate i uruchomić aktualizacje. W przypadku, gdy wymagania projektu ulegną znaczącej zmianie, często czystszym rozwiązaniem jest usunięcie katalogu venv i utworzenie go ponownie z pliku requirements.txt, zamiast ręcznego odinstalowywania dziesiątek pojedynczych pakietów.

W miarę rozwoju projektów warto rozważyć ich konteneryzację przy użyciu Docker lub wdrożenie automatycznych skryptów, które zajmą się konfiguracją środowisk. Na ten moment dysponujesz solidnym fundamentem do lokalnego programowania oraz wdrażania na produkcję. Dbaj o bezpieczeństwo serwera, blokuj wersje zależności i rozwijaj swoją infrastrukturę z pewnością siebie.

Najczęściej zadawane pytania

Ubuntu wymusza standard PEP 668, aby zapobiec nadpisywaniu pakietów systemowych przez pip, co mogłoby uszkodzić kluczowe usługi na Twoim serwerze VoxiHost.
Nie. Nigdy nie używaj sudo podczas tworzenia lub zarządzania środowiskiem wirtualnym, ponieważ zmienia to właściciela plików i powoduje błędy uprawnień.
Gdy środowisko jest aktywne, Twój znak zachęty w terminalu będzie zazwyczaj poprzedzony nazwą katalogu środowiska, np. (venv) user@hostname:~$.
Jeśli pip nie jest dostępny, uruchom python3 -m ensurepip --upgrade, aby zainstalować go bezpośrednio w aktywnym środowisku wirtualnym.
Wystarczy wpisać polecenie deactivate w terminalu, aby przywrócić powłokę do domyślnego środowiska systemowego Python.

Sugeruj poprawki na GitHubie

Zauważyłeś literówkę lub chcesz ulepszyć ten poradnik? Ten wpis jest open-source i możesz go edytować.

Edytuj ten wpis
Wróć do listy wpisów

Języki