Поделиться через


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

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

С помощью артефактов Azure можно публиковать и скачивать пакеты из веб-каналов и общедоступных реестров, таких как PyPi. В этом кратком руководстве описано, как создать веб-канал, настроить проект и управлять пакетами Python в веб-канале Azure Artifacts.

Необходимые условия

Продукт Требования
Azure DevOps Организация Azure DevOps.
— проект Azure DevOps .
— Скачивание и установка Python.

Получение кода

  1. Если у вас нет собственного проекта Python, можно использовать следующий пример проекта Python. В противном случае можно перейти к следующему разделу:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. Чтобы создать колесо и исходное распределение, выполните следующие команды в каталоге проекта:

    pip install --upgrade build
    python -m build
    
  3. Если в проекте Python есть файл setup.py , вы также можете создать пакет с помощью:

    python setup.py sdist bdist_wheel
    

Создать канал

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

  2. Выберите Артефакты, а затем выберите Создать ленту.

  3. Укажите имя для фида, выберите параметр видимости, который определяет, кто может просматривать пакеты, отметьте включение пакетов из общедоступных источников, если вы хотите включить пакеты из источников, таких как nuget.org или npmjs.com, и для области определите, должен ли фид охватывать только ваш проект или всю организацию.

  4. После завершения выберите Создать.

    снимок экрана, на котором показаны варианты для создания нового фида в Azure DevOps Services.

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

  2. Выберите Артефакты, а затем выберите Создать ленту.

  3. Укажите имя для фида, выберите параметр видимости, который определяет, кто может просматривать пакеты, отметьте включение пакетов из общедоступных источников, если вы хотите включить пакеты из источников, таких как nuget.org или npmjs.com, и для области определите, должен ли фид охватывать только ваш проект или всю организацию.

  1. После завершения выберите Создать.

    снимок экрана, на котором показаны выборы для создания веб-канала в Azure DevOps 2022.

  1. После завершения выберите Создать.

    снимок экрана, на котором показаны выборы для создания веб-канала в Azure DevOps 2020.

Заметка

По умолчанию служба сборки для проекта (например, projectName Build Service (orgName)) назначает роль веб-канала и средства чтения upstream (Collaborator) при создании нового веб-канала.

Подключиться к вашей ленте новостей

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

  2. Выберите артефактов, выберите свой веб-канал в раскрывающемся меню, а затем выберите Подключиться к каналу.

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

  4. Если вы впервые используете Azure Artifacts с Twine, выберите Получить средства и следуйте инструкциям по скачиванию Python и установке Twine и ключа артефактов.

  5. Создайте файл pypirc в домашнем каталоге и вставьте фрагмент кода, предоставленный в разделе установки проекта . Файл должен выглядеть следующим образом:

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

Заметка

Если файл pypirc уже содержит учетные данные для общедоступного индекса PyPI, рекомендуется удалить [pypi] раздел, чтобы избежать случайной публикации частных пакетов в PyPI.

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

  1. В каталоге вашего проекта выполните следующую команду, чтобы создать пакеты исходного кода и wheel.

    python setup.py sdist bdist_wheel
    
    
  2. Чтобы опубликовать пакет, используйте следующую команду. Не забудьте использовать флаг -r FEED_NAME , чтобы избежать случайной публикации в PyPI:

    twine upload -r <FEED_NAME> dist/*
    

Установка пакетов из вашего потока

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

    pip install
    
  2. Чтобы установить определенный пакет, замените заполнитель именем пакета из веб-канала:

    pip install <PACKAGE_NAME>