Публикация и использование пакетов 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, если еще не сделали этого.
- git, установленный на локальном компьютере.
- Учетная запись GitHub. Создайте бесплатную учетную запись GitHub, если еще не сделали этого.
- Доступ к коллекции Azure DevOps Server.
- Личный маркер доступа (PAT) с область чтения упаковки>. Сведения о создании см. в разделе "Создание PAT".
- Проект Azure DevOps. Если у вас его нет, создайте проект.
- Python 3.9 или более поздней версии, установленный в локальной среде разработки.
- pip 24.0 и twine 5.0.0 или более поздней версии.
- При использовании примера пакета Python:
- Учетная запись GitHub. Создайте бесплатную учетную запись GitHub, если еще не сделали этого.
- git, установленный на локальном компьютере.
Создание веб-канала артефактов Azure
Если у вас нет веб-канала, выполните следующие действия, чтобы создать канал.
Войдите в свою организацию Azure DevOps и перейдите в проект.
Выберите артефакты и нажмите кнопку "Создать веб-канал".
Введите следующие сведения для веб-канала:
- Введите описательное имя веб-канала.
- Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
- Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
- Укажите область веб-канала.
Нажмите кнопку создания.
Перейдите в коллекцию Azure DevOps, выберите проект.
Выберите артефакты и нажмите кнопку "Создать веб-канал".
Введите следующие сведения для веб-канала:
- Введите описательное имя веб-канала.
- Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
- Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
- Укажите область веб-канала.
Нажмите кнопку создания.
Перейдите в коллекцию Azure DevOps, выберите проект.
Выберите артефакты и нажмите кнопку "Создать веб-канал", чтобы создать новый веб-канал .
Введите следующие сведения для веб-канала:
- Введите описательное имя веб-канала.
- Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
- Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
- Укажите область веб-канала.
Нажмите кнопку создания.
Перейдите в коллекцию Azure DevOps, выберите проект.
Выберите артефакты и нажмите кнопку "Создать веб-канал", чтобы создать новый веб-канал .
Введите следующие сведения для веб-канала:
- Введите описательное имя веб-канала.
- Определите ее видимость (показывающий, кто может просматривать пакеты в веб-канале).
- Выберите, следует ли использовать пакеты из общедоступных источников, таких как pypi.org.
Нажмите кнопку создания.
Создание локального пакета Python
Вам нужен пакет Python для публикации в веб-канале. Если у вас нет пакета для публикации, можно клонировать пример пакета Python из GitHub.
Клонирование примера пакета Python
Выполните следующие действия, чтобы использовать пример пакета Python из GitHub.
Перейдите к следующему репозиторию GitHub:
https://github.com/microsoft/python-package-template
Репозиторий, скопированный в учетную запись GitHub.
Перейдите в вилку репозитория и выберите "Код".
Скопируйте URL-адрес вилированного репозитория.
С помощью интерфейса командной строки на локальном компьютере клонируйте репозиторий на локальный компьютер с помощью URL-адреса, скопированного из вилированного репозитория.
git clone <REPOSITORY_URL>
Измените каталог в клонированного репозитория.
cd python-package-template
Создание пакета
Чтобы создать колесо и исходное распределение, выполните следующие команды в каталоге проекта:
pip install --upgrade build
python -m build
Если в проекте Python есть setup.py
файл, можно использовать следующую команду для сборки пакета:
python setup.py sdist bdist_wheel
Подключиться к веб-каналу
Существует два основных способа подключения к веб-каналу для публикации или использования пакетов Python:
- Используйте пакет ключа артефактов, который автоматически настраивает проверку подлинности для вас.
- Вручную настройте учетные данные с помощью 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.
Публикация пакетов с помощью ключа артефактов
Выберите Подключение для веб-канала.
Выберите twine и скопируйте URL-адрес репозитория из раздела установки проекта.
Чтобы опубликовать пакет в веб-канале, выполните следующую команду, заменив <FEED_URL> URL-адресом репозитория, скопированным из диалогового окна Подключение для канала:
twine upload --repository-url <FEED_URL> dist/*
Публикация пакетов с помощью проверки подлинности PAT
Используйте twine для отправки пакета в веб-канал Артефактов Azure.
Перейдите в проект Azure DevOps и выберите артефакты.
Выберите веб-канал и выберите Подключение для веб-канала.
Выберите twine в разделе Python .
На компьютере разработки убедитесь, что двойник установлен.
pip install --upgrade twine
Следуйте инструкциям в разделе "Настройка проекта", чтобы настроить
.pypirc
файл.Чтобы избежать необходимости вводить личный маркер доступа при каждом публикации пакета, вы можете добавить учетные данные в
.pypirc
файл. Убедитесь, что вы не проверка личный маркер доступа в общедоступный репозиторий..pypirc
Пример файла с учетными данными:[distutils] Index-servers = <FEED_NAME> [<FEED_NAME>] Repository = <FEED_URL> username = <FEED_NAME> password = <YOUR_PERSONAL_ACCESS_TOKEN>
Чтобы отправить пакет, выполните следующую команду в каталоге проекта, заменив <FEED_NAME> именем веб-канала. В Windows может потребоваться указать
pypirc
расположение файла с параметром--config-file
.twine upload --repository <FEED_NAME> dist/*
Использование пакетов Python
Пакеты Python можно использовать из веб-канала с помощью пакета ключей артефактов или проверки подлинности PAT.
Использование пакетов с ключами артефактов
В проекте выберите артефакты и выберите веб-канал.
Выберите Подключение для канала.
Выберите pip в разделе Python .
Подготовьте локальную среду Python.
Убедитесь, что pip установлен и обновлен:
python -m pip install --upgrade pip
Чтобы создать и активировать виртуальную среду Python, выполните следующие действия.
python -m venv myenv myenv/Scripts/activate
index-url
Скопируйте из раздела установки проекта диалогового окна Подключение в канал.Чтобы установить пакет из веб-канала, выполните следующую команду, заменив <PACKAGE_NAME> именем пакета из веб-канала и <INDEX_URL> url-адресом индекса, скопированным из Подключение в диалоговое окно веб-канала:
pip install <PACKAGE_NAME> --index-url <INDEX_URL>
При первом подключении к Azure DevOps вам будет предложено предоставить учетные данные. Введите имя пользователя (любая строка) и личный маркер доступа в соответствующих полях. Учетные данные будут кэшироваться локально и использоваться для автоматического входа в следующий раз, когда вы используете службу.
Использование пакетов с проверкой подлинности PAT
Перейдите в проект Azure DevOps и выберите артефакты.
Выберите веб-канал и выберите Подключение для веб-канала.
Выберите pip в разделе Python .
Подготовьте локальную среду Python.
Убедитесь, что pip установлен и обновлен:
python -m pip install --upgrade pip
Создайте и активируйте виртуальную среду Python:
python -m venv myenv myenv/Scripts/activate
Добавьте файл pip.ini (Windows) или pip.conf (Mac/Linux) в корневой каталог виртуальной среды. Скопируйте содержимое из раздела установки проекта Подключение в диалоговое окно канала и добавьте его в файл pip.ini или pip.conf.
Чтобы избежать необходимости вводить личный маркер доступа при каждом установке пакета из веб-канала, вы можете добавить свои учетные данные в файл pip.ini или pip.conf . Убедитесь, что вы не проверка личный маркер доступа в общедоступный репозиторий.
Пример файла pip.ini или pip.conf с учетными данными:
[global] index-url=https://<FEED_NAME>:<YOUR_PERSONAL_ACCESS_TOKEN>@<FEED_URL>
Чтобы установить пакет, выполните следующую команду, заменив <PACKAGE_NAME> именем пакета из веб-канала.
pip install <PACKAGE_NAME>