encyklopedia.space

PyPI – Python Package Index

Python Package Index, powszechnie znany pod skrótem PyPI, jest centralnym repozytorium oprogramowania otwarto‑źródłowego przeznaczonego dla języka programowania Python. Udostępnia on biblioteki (pakiety) umożliwiające programistom łatwe dodawanie gotowych funkcjonalności do własnych projektów.

Historia

Projekt PyPI został uruchomiony w 2003 roku jako część inicjatywy Python Software Foundation. Pierwsze wersje serwisu były bardzo proste i opierały się na statycznym katalogu plików. W 2008 roku wprowadzono wsparcie dla PEP 274, a w 2013 roku serwis przeszedł migrację na platformę OpenStack, co znacznie zwiększyło jego skalowalność i dostępność.

Budowa i zasada działania

Pakiety w PyPI są przechowywane jako archiwa w formacie .tar.gz lub .whl (wheel). Każdy projekt posiada opis w pliku setup.cfg lub pyproject.toml, który definiuje metadane, zależności i instrukcje instalacji.

  • Metadane – nazwa, wersja, autor, licencja, krótki opis.
  • Zależności – lista innych pakietów niezbędnych do działania.
  • Instrukcje instalacji – skrypty konfigurujące kompilację i instalację.

Instalacja pakietów

Głównym narzędziem do pobierania i instalowania pakietów z PyPI jest pip. Przykładowe polecenie:

pip install nazwa-pakietu

W połączeniu z virtualenv lub venv umożliwia tworzenie izolowanych środowisk, co eliminuje konflikty wersji.

Bezpieczeństwo

W 2019 roku wprowadzono mechanizm sigstore pozwalający na weryfikację podpisów cyfrowych pakietów. Dodatkowo, GitHub i GitLab oferują automatyczne skanowanie pod kątem podatności, a OSV udostępnia bazę znanych luk w zależnościach.

Znaczenie i wpływ

Do 2020 roku w PyPI znajdowało się ponad 500 000 unikalnych pakietów, co czyni go jednym z największych repozytoriów open source na świecie. Umożliwia to szybką implementację najnowszych rozwiązań z dziedzin takich jak sztuczna inteligencja, analiza danych, tworzenie aplikacji internetowych oraz automatyzacji.

Alternatywy i powiązane projekty

Poza PyPI istnieją inne rejestry pakietów, które obsługują specyficzne potrzeby:

  • Conda – repozytorium skierowane do środowisk naukowych i analizy danych.
  • Anaconda Repository – komercyjna alternatywa zapewniająca prywatne hostingi.
  • Lokalne mirrory PyPI – wykorzystywane w dużych organizacjach w celu zmniejszenia zużycia łącza.

Zobacz także