Публикация и использование пакетов Python с помощью командной строки (CLI)

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

Артефакты Azure позволяют создавать, размещать и совместно использовать пакеты Python с вашей командой или организацией. Вы можете публиковать и использовать пакеты Python с помощью веб-канала Azure Artifacts из командной строки в локальной среде разработки.

В этой статье раскрываются следующие темы:

  • Создайте веб-канал артефактов Azure.
  • Настройте проверку подлинности с помощью пакета azure artifacts-keyring или личного маркера доступа (PAT).
  • Публикация пакетов Python в веб-канале.
  • Использование пакетов Python из веб-канала.

Сведения о публикации и использовании пакетов в Azure Pipelines см. в статье "Публикация пакетов Python с помощью Azure Pipelines".

Необходимые компоненты

Чтобы выполнить следующие действия, необходимо выполнить следующие действия:

  • Организация Azure DevOps. Создайте ее бесплатно.
  • Личный маркер доступа (PAT) с область чтения упаковки>. Сведения о создании см. в разделе "Создание PAT".
  • Проект Azure DevOps. Если у вас его нет, создайте проект.
  • Python 3.9 или более поздней версии, установленный на локальном компьютере. Скачайте Python здесь.
  • pip 24.0 и twine 5.0.0 или более поздней версии.
  • Пакет Python для публикации с локального компьютера на веб-канале.
  • При использовании примера пакета Python:
  • Учетная запись GitHub. Создайте бесплатную учетную запись GitHub, если еще не сделали этого.
  • Доступ к коллекции Azure DevOps Server.
  • Личный маркер доступа (PAT) с область чтения упаковки>. Сведения о создании см. в разделе "Создание PAT".
  • Проект Azure DevOps. Если у вас его нет, создайте проект.
  • Python 3.9 или более поздней версии, установленный в локальной среде разработки.
  • pip 24.0 и twine 5.0.0 или более поздней версии.
  • При использовании примера пакета Python:

Создание веб-канала артефактов Azure

Если у вас нет веб-канала, выполните следующие действия, чтобы создать канал.

  1. Войдите в свою организацию Azure DevOps и перейдите в проект.

  2. Выберите артефакты и нажмите кнопку "Создать веб-канал".

    A screenshot showing how to create a feed.

  3. Введите следующие сведения для веб-канала:

    1. Введите описательное имя веб-канала.
    2. Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
    3. Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
    4. Укажите область веб-канала.
  4. Нажмите кнопку создания.

  1. Перейдите в коллекцию Azure DevOps, выберите проект.

  2. Выберите артефакты и нажмите кнопку "Создать веб-канал".

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

  3. Введите следующие сведения для веб-канала:

    1. Введите описательное имя веб-канала.
    2. Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
    3. Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
    4. Укажите область веб-канала.
  4. Нажмите кнопку создания.

  1. Перейдите в коллекцию Azure DevOps, выберите проект.

  2. Выберите артефакты и нажмите кнопку "Создать веб-канал", чтобы создать новый веб-канал .

  3. Введите следующие сведения для веб-канала:

    1. Введите описательное имя веб-канала.
    2. Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
    3. Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
    4. Укажите область веб-канала.
  4. Нажмите кнопку создания.

  1. Перейдите в коллекцию Azure DevOps, выберите проект.

  2. Выберите артефакты и нажмите кнопку "Создать веб-канал", чтобы создать новый веб-канал .

  3. Введите следующие сведения для веб-канала:

    1. Введите описательное имя веб-канала.
    2. Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
    3. Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
  4. Нажмите кнопку создания.

Создание локального пакета Python

Вам нужен пакет Python для публикации в веб-канале. Если у вас нет пакета для публикации, можно клонировать пример пакета Python из GitHub.

Клонирование примера пакета Python

Выполните следующие действия, чтобы использовать пример пакета Python из GitHub.

  1. Перейдите к следующему репозиторию GitHub:

    https://github.com/microsoft/python-package-template
    
  2. Репозиторий, скопированный в учетную запись GitHub.

  3. Перейдите в вилку репозитория и выберите "Код".

  4. Скопируйте URL-адрес вилированного репозитория.

  5. С помощью интерфейса командной строки на локальном компьютере клонируйте репозиторий на локальный компьютер с помощью URL-адреса, скопированного из вилированного репозитория.

    git clone <REPOSIORY_URL>
    
  6. Измените каталог в клонированного репозитория.

    cd python-package-template
    

Создание пакета

Чтобы создать колесо и исходное распределение, выполните следующие команды в каталоге проекта:

pip install --upgrade build
python -m build

Если в проекте Python есть setup.py файл, можно использовать следующую команду для сборки пакета:

python setup.py sdist bdist_wheel

Подключиться к веб-каналу

Существует два основных способа подключения к веб-каналу для публикации или использования пакетов Python:

  1. Используйте пакет ключа артефактов, который автоматически настраивает проверку подлинности для вас.
  2. Вручную настройте учетные данные с помощью PAT.

Примечание.

Артефакты-ключи не поддерживаются в более новых версиях Ubuntu.

Примечание.

Если ваша организация использует брандмауэр или прокси-сервер, убедитесь, что вы разрешаете URL-адреса и IP-адреса домена Azure Artifacts.

Настройка артефактов-ключей для проверки подлинности

Пакет artifacts-keyring работает с пакетом с ключами Python, чтобы настроить проверку подлинности для публикации и использования пакетов Python в веб-канал и из нее. Как pip, так и twine используют пакет ключа Python для поиска учетных данных.

Внимание

Для использования артефактов-ключей необходимо использовать pip 19.2 и twine 1.13.0 или более поздней версии. Дополнительные сведения см. в разделе "Требования к использованию".

Если вы решили использовать ключ артефактов, необходимо установить пакет, прежде чем его использовать.

В окне командной строки с повышенными привилегиями выполните следующую команду, чтобы установить пакет artifacts-keyring:

pip install artifacts-keyring

Публикация пакетов Python

Пакеты Python можно опубликовать в веб-канале с помощью пакета артефактов с ключами или проверки подлинности PAT.

Публикация пакетов с помощью ключа артефактов

  1. Выберите Подключение для веб-канала.

    A screenshot highlighting the connect to feed.

  2. Выберите twine и скопируйте URL-адрес репозитория из раздела установки проекта.

    A screenshot of instructions to connect to feed with twine.

  3. Чтобы опубликовать пакет в веб-канале, выполните следующую команду, заменив <FEED_URL> URL-адресом репозитория, скопированным из диалогового окна Подключение для канала:

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

Публикация пакетов с помощью проверки подлинности PAT

Используйте twine для отправки пакета в веб-канал Артефактов Azure.

  1. Перейдите в проект Azure DevOps и выберите артефакты.

  2. Выберите веб-канал и выберите Подключение для веб-канала.

    A screenshot highlighting the connect to feed.

  3. Выберите twine в разделе Python .

    A screenshot highlighting the twine package type.

  4. На компьютере разработки убедитесь, что двойник установлен.

    pip install --upgrade twine
    
  5. Следуйте инструкциям в разделе "Настройка проекта", чтобы настроить .pypirc файл.

    A screenshot highlighting the `.pyirc` file content.

  6. Чтобы избежать необходимости вводить личный маркер доступа при каждом публикации пакета, вы можете добавить учетные данные в .pypirc файл. Убедитесь, что вы не проверка личный маркер доступа в общедоступный репозиторий.

    .pypirc Пример файла с учетными данными:

    [distutils]
    Index-servers =
        <FEED_NAME>
    
    [<FEED_NAME>]
    Repository = <FEED_URL>
    username = <FEED_NAME>
    password = <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Чтобы отправить пакет, выполните следующую команду в каталоге проекта, заменив <FEED_NAME> именем веб-канала. В Windows может потребоваться указать pypirc расположение файла с параметром --config-file .

    twine upload --repository <FEED_NAME> dist/*
    

Использование пакетов Python

Пакеты Python можно использовать из веб-канала с помощью пакета ключей артефактов или проверки подлинности PAT.

Использование пакетов с ключами артефактов

  1. В проекте выберите артефакты и выберите веб-канал.

  2. Выберите Подключение для канала.

    A screenshot highlighting the connect to feed button.

  3. Выберите pip в разделе Python .

    A screenshot of pip selection in Connect to feed.

  4. Подготовьте локальную среду Python.

    1. Убедитесь, что pip установлен и обновлен:

      python -m pip install --upgrade pip
      
    2. Чтобы создать и активировать виртуальную среду Python, выполните следующие действия.

      python -m venv myenv
      myenv/Scripts/activate
      
  5. index-url Скопируйте из раздела установки проекта диалогового окна Подключение в канал.

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

  6. Чтобы установить пакет из веб-канала, выполните следующую команду, заменив <PACKAGE_NAME> именем пакета из веб-канала и <INDEX_URL> url-адресом индекса, скопированным из Подключение в диалоговое окно веб-канала:

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

При первом подключении к Azure DevOps вам будет предложено предоставить учетные данные. Введите имя пользователя (любая строка) и личный маркер доступа в соответствующих полях. Учетные данные будут кэшироваться локально и использоваться для автоматического входа в следующий раз, когда вы используете службу.

Использование пакетов с проверкой подлинности PAT

  1. Перейдите в проект Azure DevOps и выберите артефакты.

  2. Выберите веб-канал и выберите Подключение для веб-канала.

    A screenshot highlighting the connect to feed button.

  3. Выберите pip в разделе Python .

    A screenshot highlighting the pip package type.

  4. Подготовьте локальную среду Python.

    1. Убедитесь, что pip установлен и обновлен:

      python -m pip install --upgrade pip
      
    2. Создайте и активируйте виртуальную среду Python:

      python -m venv myenv
      myenv/Scripts/activate
      
  5. Добавьте файл pip.ini (Windows) или pip.conf (Mac/Linux) в корневой каталог виртуальной среды. Скопируйте содержимое из раздела установки проекта Подключение в диалоговое окно канала и добавьте его в файл pip.ini или pip.conf.

    A screenshot highlighting the pip.ini file content.

  6. Чтобы избежать необходимости вводить личный маркер доступа при каждом установке пакета из веб-канала, вы можете добавить свои учетные данные в файл pip.ini или pip.conf . Убедитесь, что вы не проверка личный маркер доступа в общедоступный репозиторий.

    Пример файла pip.ini или pip.conf с учетными данными:

    [global]
    extra-index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
    
  7. Чтобы установить пакет, выполните следующую команду, заменив <PACKAGE_NAME> именем пакета из веб-канала.

    pip install <PACKAGE_NAME>