Начало работы с пакетами Python в Azure Artifacts
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
С помощью артефактов Azure можно публиковать и скачивать пакеты из веб-каналов и общедоступных реестров, таких как PyPi. В этом кратком руководстве вы узнаете, как создать веб-канал, настроить проект и управлять пакетами Python в веб-канале Azure Artifacts. В этой статье описано, как:
- Создайте новую ленту.
- Аутентификация с вашим источником ленты.
- Публикация пакетов Python.
- Установите пакеты из вашего репозитория.
Необходимые условия
Создайте организацию Azure DevOps и проект , если вы еще не сделали этого.
Скачайте и установите Python.
Получение кода
Если у вас нет собственного проекта Python, можно использовать следующий пример проекта Python:
https://github.com/microsoft/python-package-template
Чтобы создать колесо и исходное распределение, выполните следующие команды в каталоге проекта:
pip install --upgrade build python -m build
Если в проекте Python есть файл setup.py, вы также можете использовать эту команду для сборки пакета:
python setup.py sdist bdist_wheel
Создать канал
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите Артефакты, а затем выберите Создать ленту.
Укажите имени
для веб-канала, выберите параметр видимости , который определяет, кто может просматривать пакеты, проверятьвключить пакеты из общих общедоступных источников , если вы хотите включить пакеты из источников, таких какnuget.org илиnpmjs.com , и дляобласти , определите, должен ли веб-канал быть ограничен вашим проектом или всей организацией.После завершения выберите Создать.
Войдите на сервер Azure DevOps и перейдите в проект.
Выберите артефакты, а затем выберите Создать ленту.
Укажите название для веб-канала, выберите параметр видимости, который определяет, кто может просматривать ваши пакеты, установите флажок включить пакеты из общедоступных источников, если вы хотите включить пакеты из источников, таких как nuget.org или npmjs.com, и для области, определите, должен ли веб-канал принадлежать вашему проекту или всей организации.
Выберите Создать, когда закончите.
После завершения выберите Создать.
Войдите на сервер Azure DevOps и перейдите в проект.
Выберите Артефакты, а затем выберите Новая лента.
В поле Имявведите описательное имя для вашей ленты.
Для видимостивыберите параметр, чтобы указать, кто может видеть пакеты в фиде.
Если вы хотите включить пакеты из общедоступных источников, выберите опцию Использовать пакеты из общедоступных источников через этот канал.
После завершения работы выберите Создать.
Заметка
По умолчанию новые фиды имеют значение службы сборки проекта, установленное на Учётную запись фида и вышестоящего читателя (сотрудник).
Подключитесь к ленте
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефактов, выберите свой веб-канал в раскрывающемся меню, а затем выберите Подключиться к каналу.
Выберите twine в разделе Python.
Если вы впервые используете Azure Artifacts с twine, выберите Установите необходимые инструменты и выполните действия по установке необходимых компонентов.
Добавьте файл 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.
Публикация пакетов
Выполните следующую команду в каталоге проекта для создания исходных и колесных дистрибутивов:
python setup.py sdist bdist_wheel
Выполните следующую команду, чтобы опубликовать пакет. Используйте флаг -r FEED_NAME, чтобы убедиться, что частные пакеты не были случайно опубликованы в PyPI.
twine upload -r <FEED_NAME> dist/*
Установка пакетов
Выполните следующую команду в каталоге проекта, чтобы установить пакеты:
pip install
Чтобы установить определенный пакет, выполните следующую команду, заменив плейсхолдер именем пакета из репозитория.
pip install <PACKAGE_NAME>