Udostępnij za pośrednictwem


Publikowanie i używanie pakietów języka Python przy użyciu wiersza polecenia (interfejs wiersza polecenia)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Usługa Azure Artifacts umożliwia tworzenie, hostowanie i udostępnianie pakietów języka Python zespołowi lub organizacji. Pakiety języka Python można publikować i wykorzystywać przy użyciu źródła danych usługi Azure Artifacts z poziomu wiersza polecenia w lokalnym środowisku projektowym.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Utwórz źródło danych usługi Azure Artifacts.
  • Skonfiguruj uwierzytelnianie przy użyciu pakietu python artifacts-keyring lub osobistego tokenu dostępu (PAT).
  • Publikowanie pakietów języka Python w kanale informacyjnym.
  • Korzystanie z pakietów języka Python z kanału informacyjnego.

Aby opublikować i korzystać z pakietów w usłudze Azure Pipelines, zobacz Publikowanie pakietów języka Python za pomocą usługi Azure Pipelines.

Wymagania wstępne

Aby uruchomić następujące kroki, musisz mieć następujące elementy:

  • Organizacja: Azure DevOps. Utwórz je bezpłatnie.
  • Osobisty token dostępu (PAT) z zakresem odczytu pakietów>. Aby go utworzyć, zobacz Tworzenie tokenu dostępu.
  • Projekt usługi Azure DevOps. Jeśli go nie masz, utwórz projekt.
  • Język Python 3.9 lub nowszy zainstalowany na komputerze lokalnym. Pobierz język Python tutaj.
  • pip 24.0 i twine 5.0.0 lub nowszy.
  • Pakiet języka Python do publikowania z komputera lokalnego do kanału informacyjnego.
  • Jeśli używasz przykładowego pakietu języka Python:
    • Konto usługi GitHub. Utwórz bezpłatne konto usługi GitHub, jeśli jeszcze go nie masz.
    • narzędzie git zainstalowane na komputerze lokalnym.
  • Konto usługi GitHub. Utwórz bezpłatne konto usługi GitHub, jeśli jeszcze go nie masz.
  • Dostęp do kolekcji usługi Azure DevOps Server.
  • Osobisty token dostępu (PAT) z zakresem odczytu pakietów>. Aby go utworzyć, zobacz Tworzenie tokenu dostępu.
  • Projekt usługi Azure DevOps. Jeśli go nie masz, utwórz projekt.
  • Środowisko Python w wersji 3.9 lub nowszej zainstalowane w lokalnym środowisku programistycznym.
  • pip 24.0 i twine 5.0.0 lub nowszy.
  • Jeśli używasz przykładowego pakietu języka Python:
    • Konto usługi GitHub. Utwórz bezpłatne konto usługi GitHub, jeśli jeszcze go nie masz.
    • narzędzie git zainstalowane na komputerze lokalnym.

Tworzenie źródła danych usługi Azure Artifacts

Jeśli nie masz kanału informacyjnego, wykonaj następujące kroki, aby je utworzyć.

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

  2. Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz kanał informacyjny.

    A screenshot showing how to create a feed.

  3. Wprowadź następujące informacje dotyczące kanału informacyjnego:

    1. Wprowadź opisową nazwę kanału informacyjnego.
    2. Zdefiniuj widoczność (wskazując, kto może wyświetlać pakiety w kanale informacyjnym).
    3. Wybierz, czy mają być używane pakiety ze źródeł publicznych, takich jak pypi.org.
    4. Określ zakres kanału informacyjnego.
  4. Wybierz pozycję Utwórz.

  1. Przejdź do kolekcji usługi Azure DevOps, a następnie wybierz projekt.

  2. Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz kanał informacyjny.

    A screenshot showing how to create a feed in DevOps Server.

  3. Wprowadź następujące informacje dotyczące kanału informacyjnego:

    1. Wprowadź opisową nazwę kanału informacyjnego.
    2. Zdefiniuj widoczność (wskazując, kto może wyświetlać pakiety w kanale informacyjnym).
    3. Wybierz, czy mają być używane pakiety ze źródeł publicznych, takich jak pypi.org.
    4. Określ zakres kanału informacyjnego.
  4. Wybierz pozycję Utwórz.

  1. Przejdź do kolekcji usługi Azure DevOps, a następnie wybierz projekt.

  2. Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz źródło danych , aby utworzyć nowe źródło danych.

  3. Wprowadź następujące informacje dotyczące kanału informacyjnego:

    1. Wprowadź opisową nazwę kanału informacyjnego.
    2. Zdefiniuj widoczność (wskazując, kto może wyświetlać pakiety w kanale informacyjnym).
    3. Wybierz, czy mają być używane pakiety ze źródeł publicznych, takich jak pypi.org.
    4. Określ zakres kanału informacyjnego.
  4. Wybierz pozycję Utwórz.

  1. Przejdź do kolekcji usługi Azure DevOps, a następnie wybierz projekt.

  2. Wybierz pozycję Artefakty, a następnie wybierz pozycję Utwórz źródło danych , aby utworzyć nowe źródło danych.

  3. Wprowadź następujące informacje dotyczące kanału informacyjnego:

    1. Wprowadź opisową nazwę kanału informacyjnego.
    2. Zdefiniuj widoczność (wskazując, kto może wyświetlać pakiety w kanale informacyjnym).
    3. Określ, czy używać pakietów ze źródeł publicznych, takich jak pypi.org.
  4. Wybierz pozycję Utwórz.

Tworzenie lokalnego pakietu języka Python

Do opublikowania w kanale informacyjnym potrzebny jest pakiet języka Python. Jeśli nie masz pakietu do opublikowania, możesz sklonować przykładowy pakiet języka Python z usługi GitHub.

Klonowanie przykładowego pakietu języka Python

Wykonaj poniższe kroki, aby użyć przykładowego pakietu języka Python z usługi GitHub.

  1. Przejdź do następującego repozytorium GitHub:

    https://github.com/microsoft/python-package-template
    
  2. Rozwidlenie repozytorium na koncie usługi GitHub.

  3. Przejdź do rozwidlenia repozytorium i wybierz pozycję Kod.

  4. Skopiuj adres URL rozwidlenia repozytorium.

  5. Z poziomu interfejsu wiersza polecenia na komputerze lokalnym sklonuj repozytorium na komputer lokalny przy użyciu adresu URL skopiowanego z rozwidlonego repozytorium.

    git clone <REPOSITORY_URL>
    
  6. Zmień katalog na sklonowane repozytorium.

    cd python-package-template
    

Kompilowanie pakietu

Aby skompilować koło i dystrybucję źródłową, uruchom następujące polecenia w katalogu projektu:

pip install --upgrade build
python -m build

Jeśli projekt języka Python zawiera setup.py plik, możesz użyć następującego polecenia, aby skompilować pakiet:

python setup.py sdist bdist_wheel

Połączenie do kanału informacyjnego

Istnieją dwa podstawowe sposoby nawiązywania połączenia z kanałem informacyjnym w celu publikowania lub korzystania z pakietów języka Python:

  1. Użyj pakietu artifacts-keyring, który automatycznie konfiguruje uwierzytelnianie.
  2. Ręczne konfigurowanie poświadczeń przy użyciu tokenu DOSTĘPU.

Uwaga

funkcja artifacts-keyring nie jest obsługiwana w nowszych wersjach systemu Ubuntu.

Uwaga

Jeśli twoja organizacja korzysta z zapory lub serwera proxy, upewnij się, że zezwalasz na adresy URL i adresy IP domeny usługi Azure Artifacts.

Konfigurowanie artefaktów keyring na potrzeby uwierzytelniania

Pakiet artifacts-keyring współdziała z pakietem keyring języka Python, aby umożliwić skonfigurowanie uwierzytelniania w celu publikowania i korzystania z pakietów języka Python do i z kanału informacyjnego. Zarówno pip, jak i twine używają pakietu keyring języka Python do znajdowania poświadczeń.

Ważne

Aby można było używać artefaktów-keyring, musisz mieć 19.2 i twine 1.13.0 lub nowszą. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące użycia.

Jeśli zdecydujesz się używać artefaktów-keyring, musisz zainstalować pakiet, zanim będzie można go użyć.

W oknie wiersza polecenia z podwyższonym poziomem uprawnień uruchom następujące polecenie, aby zainstalować pakiet artifacts-keyring:

pip install artifacts-keyring

Publikowanie pakietów języka Python

Pakiety języka Python można publikować w kanale informacyjnym przy użyciu pakietu artifacts-keyring lub uwierzytelniania pat.

Publikowanie pakietów z elementami artifacts-keyring

  1. Wybierz pozycję Połączenie do kanału informacyjnego.

    A screenshot highlighting the connect to feed.

  2. Wybierz pozycję twine i skopiuj adres URL repozytorium z sekcji Konfiguracja projektu.

    A screenshot of instructions to connect to feed with twine.

  3. Aby opublikować pakiet w kanale informacyjnym, uruchom następujące polecenie, zastępując <FEED_URL adresem URL repozytorium skopiowanym z Połączenie do okna dialogowego kanału informacyjnego:>

    twine upload --repository-url <FEED_URL> dist/*
    

Publikowanie pakietów przy użyciu uwierzytelniania pat

Użyj twine, aby przekazać pakiet do źródła danych usługi Azure Artifacts.

  1. Przejdź do projektu usługi Azure DevOps i wybierz pozycję Artefakty.

  2. Wybierz kanał informacyjny i wybierz pozycję Połączenie do kanału informacyjnego.

    A screenshot highlighting the connect to feed.

  3. Wybierz pozycję Twine w sekcji Python .

    A screenshot highlighting the twine package type.

  4. Na komputerze deweloperskim upewnij się, że zainstalowano bliźniacze reprezentacje.

    pip install --upgrade twine
    
  5. Postępuj zgodnie z instrukcjami w sekcji Konfiguracja projektu, aby skonfigurować .pypirc plik.

    A screenshot highlighting the `.pyirc` file content.

  6. Aby uniknąć konieczności wprowadzania osobistego tokenu dostępu za każdym razem, gdy publikujesz pakiet, możesz dodać poświadczenia do .pypirc pliku. Upewnij się, że nie sprawdzasz osobistego tokenu dostępu do repozytorium publicznego.

    .pypirc Przykład pliku z poświadczeniami:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Aby przekazać pakiet, uruchom następujące polecenie w katalogu projektu, zastępując <FEED_NAME> nazwą źródła danych. W systemie Windows może być konieczne określenie pypirc lokalizacji pliku z opcją --config-file .

    twine upload --repository <FEED_NAME> dist/*
    

Korzystanie z pakietów języka Python

Pakiety języka Python z kanału informacyjnego można używać przy użyciu pakietu artifacts-keyring lub uwierzytelniania pat.

Korzystanie z pakietów za pomocą artefaktów—keyring

  1. W projekcie wybierz pozycję Artefakty , a następnie wybierz źródło danych.

  2. Wybierz pozycję Połączenie do kanału informacyjnego.

    A screenshot highlighting the connect to feed button.

  3. Wybierz pozycję pip w sekcji Python .

    A screenshot of pip selection in Connect to feed.

  4. Przygotuj lokalne środowisko języka Python.

    1. Upewnij się, że narzędzie pip jest zainstalowane i aktualne:

      python -m pip install --upgrade pip
      
    2. Aby utworzyć i aktywować środowisko wirtualne języka Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Skopiuj element index-url z sekcji Konfiguracja projektu okna dialogowego Połączenie do kanału informacyjnego.

    A screenshot of the index-url in the Connect to feed dialog.

  6. Aby zainstalować pakiet ze źródła danych, uruchom następujące polecenie, zastępując <PACKAGE_NAME nazwą pakietu ze źródła danych i <INDEX_URL> adresem URL indeksu skopiowanym z okna dialogowego Połączenie do kanału informacyjnego:>

    pip install <PACKAGE_NAME> --index-url <INDEX_URL>
    

Po pierwszym nawiązaniu połączenia z usługą Azure DevOps zostanie wyświetlony monit o podanie poświadczeń. Wprowadź nazwę użytkownika (dowolny ciąg) i osobisty token dostępu w odpowiednich polach. Poświadczenia będą buforowane lokalnie i będą używane do automatycznego logowania podczas następnego korzystania z usługi.

Korzystanie z pakietów przy użyciu uwierzytelniania pat

  1. Przejdź do projektu usługi Azure DevOps i wybierz pozycję Artefakty.

  2. Wybierz kanał informacyjny i wybierz pozycję Połączenie do kanału informacyjnego.

    A screenshot highlighting the connect to feed button.

  3. Wybierz pozycję pip w sekcji Python .

    A screenshot highlighting the pip package type.

  4. Przygotuj lokalne środowisko języka Python.

    1. Upewnij się, że narzędzie pip jest zainstalowane i aktualne:

      python -m pip install --upgrade pip
      
    2. Tworzenie i aktywowanie środowiska wirtualnego języka Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Dodaj plik pip.ini (Windows) lub pip.conf (Mac/Linux) do katalogu głównego środowiska wirtualnego. Skopiuj zawartość z sekcji Konfiguracja projektu okna dialogowego Połączenie do kanału informacyjnego i dodaj ją do pliku pip.ini lub pip.conf.

    A screenshot highlighting the pip.ini file content.

  6. Aby uniknąć konieczności wprowadzania osobistego tokenu dostępu za każdym razem, gdy instalujesz pakiet ze źródła danych, możesz dodać poświadczenia do pliku pip.ini lub pip.conf . Upewnij się, że nie sprawdzasz osobistego tokenu dostępu do repozytorium publicznego.

    Przykład pliku pip.ini lub pip.conf z poświadczeniami:

    [global]
    index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Aby zainstalować pakiet, uruchom następujące polecenie, zastępując <PACKAGE_NAME> nazwą pakietu ze źródła danych.

    pip install <PACKAGE_NAME>