Скачать Python-пакет из реестра Cloud Registry
Для скачивания Python-пакета необходима роль cloud-registry.artifacts.puller или выше.
-
Задайте переменные для аутентификации:
export IAM_TOKEN="<IAM-токен>" export LOCAL_REG_ID="<идентификатор_реестра>" export REMOTE_REG_ID="<идентификатор_удаленного_реестра>" export VIRTUAL_REG_ID="<идентификатор_виртуального_реестра>" -
Скачайте Python-пакет из реестра:
pip install <имя_пакета> \ --index-url https://iam:$IAM_TOKEN@registry.yandexcloud.net/pypi/$LOCAL_REG_ID/simple/Где:
$IAM_TOKEN— IAM-токен для аутентификации.<идентификатор_реестра>— идентификатор вашего реестра.<имя_пакета>— имя устанавливаемого пакета.
Результат:
Collecting my_package Downloading https://registry.yandexcloud.net/pypi/e5o6a2blpkb6********/simple/my-package/my_package-0.0.1-py3-none-any.whl (4.5 kB) Installing collected packages: my_package Successfully installed my_package-0.0.1 -
Проверьте, что пакет действительно установлен:
python3 -m pip list | grep my_packageРезультат:
my_package 0.0.1
-
Задайте переменные для аутентификации:
export IAM_TOKEN="<IAM-токен>" export LOCAL_REG_ID="<идентификатор_реестра>" export REMOTE_REG_ID="<идентификатор_удаленного_реестра>" export VIRTUAL_REG_ID="<идентификатор_виртуального_реестра>" -
Добавьте источник пакетов:
poetry config http-basic.cloud-registry iam $IAM_TOKEN poetry init # жми Enter на все вопросы poetry source add cloud-registry https://iam:$IAM_TOKEN@registry.yandexcloud.net/pypi/$LOCAL_REG_ID/simple/ -
Скачайте пакет:
poetry add <имя_пакета> --source cloud-registryРезультат:
Using version ^0.0.1 for my_package Updating dependencies Resolving dependencies... (0.1s) Package operations: 1 install, 0 updates, 0 removals - Installing my_package (0.0.1) Writing lock file
-
Задайте переменные для аутентификации:
export IAM_TOKEN="<IAM-токен>" export LOCAL_REG_ID="<идентификатор_реестра>" export REMOTE_REG_ID="<идентификатор_удаленного_реестра>" export VIRTUAL_REG_ID="<идентификатор_виртуального_реестра>" -
Скачайте пакет:
uv pip install <имя_пакета> \ --index-url https://iam:$IAM_TOKEN@registry.yandexcloud.net/pypi/$LOCAL_REG_ID/simple/Результат:
Resolved 1 package in 0.5s Downloaded 1 package in 0.2s Installed 1 package in 0.1s + my_package==0.0.1
Установка из разных типов реестров
Локальный реестр
Локальный реестр содержит пакеты, созданные и опубликованные внутри вашей организации.
-
Создайте переменные окружения в зависимости от способа аутентификации:
IAM-токенOAuth-токенAPI-ключ-
Получите IAM-токен для аккаунта на Яндексе или сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="iam" export REGISTRY_PASSWORD="<IAM-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее IAM-токена.
Примечание
Время жизни IAM-токена — не больше 12 часов.
-
Получите
OAuth-токен для аккаунта на Яндексе, от имени которого вы будете выполнять аутентификацию. -
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="oauth" export REGISTRY_PASSWORD="<OAuth-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее OAuth-токена.
Примечание
Время жизни OAuth-токена — 1 год.
-
Создайте API-ключ для сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="api_key" export REGISTRY_PASSWORD="<API-ключ>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело созданного ранее API-ключа.
Примечание
Время жизни API-ключа ограничивается вручную при создании.
-
-
Установите пакет из локального реестра:
IAM-токенAPI-ключpip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего локального реестра.<имя_пакета>— имя устанавливаемого пакета.
pip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего локального реестра.<имя_пакета>— имя устанавливаемого пакета.
Пример:
pip install <имя_пакета> \
--index-url https://iam:$(yc iam create-token)@registry.yandexcloud.net/pypi/e5o6a2blpkb6********/simple/
Удаленный реестр
Удаленный реестр действует как прокси для публичных репозиториев, таких как PyPI
-
Создайте переменные окружения в зависимости от способа аутентификации:
IAM-токенOAuth-токенAPI-ключ-
Получите IAM-токен для аккаунта на Яндексе или сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="iam" export REGISTRY_PASSWORD="<IAM-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее IAM-токена.
Примечание
Время жизни IAM-токена — не больше 12 часов.
-
Получите
OAuth-токен для аккаунта на Яндексе, от имени которого вы будете выполнять аутентификацию. -
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="oauth" export REGISTRY_PASSWORD="<OAuth-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее OAuth-токена.
Примечание
Время жизни OAuth-токена — 1 год.
-
Создайте API-ключ для сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="api_key" export REGISTRY_PASSWORD="<API-ключ>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело созданного ранее API-ключа.
Примечание
Время жизни API-ключа ограничивается вручную при создании.
-
-
Установите пакет из удаленного реестра:
IAM-токенAPI-ключpip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего удаленного реестра.<имя_пакета>— имя устанавливаемого пакета из публичного PyPI.
pip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего удаленного реестра.<имя_пакета>— имя устанавливаемого пакета из публичного PyPI.
Пример:
pip install pytest==9.0.1 \
--index-url https://iam:$(yc iam create-token)@registry.yandexcloud.net/pypi/e5o6a2blpkb6********/simple/
При первом обращении пакет будет загружен из публичного PyPI и сохранен в кеш. При последующих установках пакет будет загружаться из кеша.
Виртуальный реестр
Виртуальный реестр объединяет несколько локальных и удаленных реестров под одним именем, предоставляя единую точку входа для поиска и установки пакетов.
-
Создайте переменные окружения в зависимости от способа аутентификации:
IAM-токенOAuth-токенAPI-ключ-
Получите IAM-токен для аккаунта на Яндексе или сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="iam" export REGISTRY_PASSWORD="<IAM-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее IAM-токена.
Примечание
Время жизни IAM-токена — не больше 12 часов.
-
Получите
OAuth-токен для аккаунта на Яндексе, от имени которого вы будете выполнять аутентификацию. -
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="oauth" export REGISTRY_PASSWORD="<OAuth-токен>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело полученного ранее OAuth-токена.
Примечание
Время жизни OAuth-токена — 1 год.
-
Создайте API-ключ для сервисного аккаунта, от имени которого вы будете выполнять аутентификацию.
-
Создайте переменные окружения
REGISTRY_USERNAMEиREGISTRY_PASSWORD:export REGISTRY_USERNAME="api_key" export REGISTRY_PASSWORD="<API-ключ>"Где:
REGISTRY_USERNAME— способ аутентификации.REGISTRY_PASSWORD— тело созданного ранее API-ключа.
Примечание
Время жизни API-ключа ограничивается вручную при создании.
-
-
Установите пакет из виртуального реестра:
IAM-токенAPI-ключpip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего виртуального реестра.<имя_пакета>— имя устанавливаемого пакета.
pip install <имя_пакета> \ --index-url https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \ --no-cacheГде:
<идентификатор_реестра>— идентификатор вашего виртуального реестра.<имя_пакета>— имя устанавливаемого пакета.
Пример:
pip install <имя_пакета> \
--index-url https://iam:$(yc iam create-token)@registry.yandexcloud.net/pypi/e5o6a2blpkb6********/simple/
Виртуальный реестр автоматически выполнит поиск пакета во всех подключенных локальных и удаленных реестрах в порядке их приоритета.
Установка пакетов с зависимостями из разных источников
Если вам нужно установить пакет из вашего реестра, а его зависимости — из публичного PyPI, используйте параметр --extra-index-url:
pip install <имя_пакета> \
--index-url https://iam:$(yc iam create-token)@registry.yandexcloud.net/pypi/<идентификатор_реестра>/simple/ \
--extra-index-url https://pypi.org/simple/
Где:
--index-url— основной источник пакетов (ваш реестр).--extra-index-url— дополнительный источник для зависимостей (публичный PyPI).