Publikowanie i pobieranie pakietów języka Python za pomocą usługi Azure Artifacts

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Za pomocą usługi Azure Artifacts można publikować i pobierać pakiety z kanałów informacyjnych i publicznych rejestrów, takich jak PyPi. Ten szybki przewodnik przeprowadzi Cię przez proces tworzenia strumienia, konfigurowania projektu i zarządzania pakietami Python w strumieniu Azure Artifacts.

Warunki wstępne

produkt Wymagania
Azure DevOps — Organizacja usługi Azure DevOps .
— Projekt usługi Azure DevOps .
— Pobierz i zainstaluj python.

Pobieranie kodu

  1. Jeśli nie masz własnego projektu w języku Python, możesz użyć następującego przykładowego projektu języka Python. W przeciwnym razie możesz przejść do następnej sekcji:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. Aby skompilować koło i dystrybucję źródłową, uruchom następujące polecenia w katalogu projektu:

    pip install --upgrade build
    python -m build
    
  3. Jeśli projekt w języku Python ma plik setup.py , możesz również skompilować pakiet przy użyciu:

    python setup.py sdist bdist_wheel
    

Tworzenie kanału informacyjnego

  1. Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.

  2. Wybierz pozycję Artifacts, a następnie wybierz pozycję Create Feed.

  3. Wprowadź nazwę kanału informacyjnego.

  4. Wybierz ustawienie Widoczność, aby określić, kto może wyświetlać pakiety w źródle danych.

  5. Wybierz pozycję Uwzględnij pakiety z typowych źródeł publicznych, jeśli źródło danych ma używać pakietów nadrzędnych ze źródeł, takich jak nuget.org lub npmjs.com.

  6. W obszarze Zakres wybierz, czy kanał informacyjny ma zakres dla bieżącego projektu, czy całej organizacji.

  7. Po zakończeniu wybierz Utwórz.

    Zrzut ekranu przedstawiający opcje tworzenia nowego kanału informacyjnego w usługach Azure DevOps.

  1. Zaloguj się do serwera usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artifacts, a następnie wybierz pozycję Create Feed.

  3. Wprowadź nazwę kanału informacyjnego.

  4. Wybierz ustawienie Widoczność, aby określić, kto może wyświetlać pakiety w źródle danych.

  5. Wybierz pozycję Uwzględnij pakiety z typowych źródeł publicznych, jeśli źródło danych ma używać pakietów nadrzędnych ze źródeł, takich jak nuget.org lub npmjs.com.

  6. W obszarze Zakres wybierz, czy kanał informacyjny ma zakres dla bieżącego projektu, czy całej organizacji.

  1. Po zakończeniu wybierz Utwórz.

    Zrzut ekranu przedstawiający opcje tworzenia nowego kanału informacyjnego w Azure DevOps 2022 roku.

Notatka

Podczas tworzenia kanału konto projektu Build Service, takie jak projectName Build Service (orgName), jest domyślnie przypisywane do roli Feed and Upstream Reader (Collaborator).

Połącz się ze swoim kanałem

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artifacts, wybierz źródło danych z menu rozwijanego, a następnie wybierz pozycję Connect to feed.

  3. W sekcji Python wybierz pozycję Twine.

  4. Jeśli po raz pierwszy używasz usługi Azure Artifacts z Twine, wybierz pozycję Pobierz narzędzia i postępuj zgodnie z instrukcjami, aby pobrać Python i zainstalować Twine oraz artifacts keyring.

  5. Utwórz plik pypirc w katalogu głównym i wklej fragment kodu podany w sekcji Konfiguracja projektu . Plik powinien wyglądać następująco:

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

Notatka

Jeśli plik pypirc zawiera już poświadczenia dla publicznego indeksu PyPI, zalecamy usunięcie [pypi] sekcji, aby uniknąć przypadkowego publikowania pakietów prywatnych w repozytorium PyPI.

Publikowanie pakietów w kanale informacyjnym

  1. W katalogu projektu uruchom następujące polecenie, aby utworzyć rozkłady źródła i koła:

    python setup.py sdist bdist_wheel
    
    
  2. Aby opublikować pakiet, użyj poniższego polecenia. Pamiętaj, aby użyć flagi -r FEED_NAME, aby uniknąć przypadkowego publikowania w PyPI.

    twine upload -r <FEED_NAME> dist/*
    

Zainstaluj pakiety ze swojego kanału informacyjnego

  1. Aby zainstalować pakiety ze źródła danych, uruchom następujące polecenie w katalogu projektu:

    pip install
    
  2. Aby zainstalować określony pakiet, zastąp symbol zastępczy nazwą pakietu ze źródła danych:

    pip install <PACKAGE_NAME>