Загрузить Python-пакет в локальный реестр Cloud Registry
Статья создана
Обновлена 14 мая 2026 г.
Инструкция описывает, как загрузить Python-пакет в локальный реестр.
Для загрузки Python-пакета в реестр необходима роль cloud-registry.artifacts.pusher или выше.
pip + twine
Poetry
uv
-
Если у вас еще нет собранного пакета, создайте его.
-
Загрузите пакет:
export LOCAL_REG_ID="<идентификатор_реестра>" export IAM_TOKEN="<IAM-токен>" twine upload \ --repository-url "https://registry.yandexcloud.net/pypi/$LOCAL_REG_ID/legacy/" \ --username iam \ --password "$IAM_TOKEN" \ dist/*Или настройте аутентификацию с помощью файла
~/.pypirc:[distutils] index-servers = cloud-registry [cloud-registry] repository = https://registry.yandexcloud.net/pypi/<идентификатор_реестра>/legacy/ username = iam password = <IAM-токен>Где:
<идентификатор_реестра>— идентификатор вашего локального реестра.username— тип токена:iam,oauthилиapi_key.password— значение соответствующего токена.
python3 -m twine upload --repository cloud-registry dist/*Результат:
Uploading distributions to https://registry.yandexcloud.net/pypi/e5o6a2blpkb6********/legacy/ Uploading my_package-0.0.1-py3-none-any.whl 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 kB • 00:00 • ? Uploading my_package-0.0.1.tar.gz 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 kB • 00:00 • ?
-
Если у вас еще нет собранного пакета, создайте его.
-
Настройте репозиторий для публикации:
poetry config repositories.cloud-registry https://registry.yandexcloud.net/pypi/<идентификатор_реестра>/legacy/ -
Настройте аутентификацию:
poetry config http-basic.cloud-registry iam "$(yc iam create-token)"Где:
iam— тип токена. Вместоiamможно использоватьoauthилиapi_key.<идентификатор_реестра>— идентификатор вашего локального реестра.
-
Загрузите пакет в реестр:
poetry publish -r cloud-registryРезультат:
Publishing my_package (0.0.1) to cloud-registry - Uploading my_package-0.0.1-py3-none-any.whl 100% - Uploading my_package-0.0.1.tar.gz 100%
-
Если у вас еще нет собранного пакета, создайте его.
-
Загрузите пакет:
export LOCAL_REG_ID="<идентификатор_реестра>" export IAM_TOKEN="<IAM-токен>" uv publish \ --publish-url "https://registry.yandexcloud.net/pypi/$LOCAL_REG_ID/legacy/" \ --username iam \ --password "$IAM_TOKEN" \ dist/*Или cоздайте файл
uv.tomlв корне проекта:[publish] url = "https://registry.yandexcloud.net/pypi/<идентификатор_реестра>/legacy/" username = "iam" password = "<IAM-токен>"Где:
<идентификатор_реестра>— идентификатор вашего локального реестра.username— тип токена:iam,oauthилиapi_key.password— значение соответствующего токена.
uv publishРезультат:
Uploading my_package-0.0.1-py3-none-any.whl (4.5 KB) Uploading my_package-0.0.1.tar.gz (3.8 KB)