Почему вообще нужен PyOCI? Потому что не хочется зависеть от очередного «облачного провайдера» только ради того, чтобы хранить приватные Python-пакеты.
PyOCI делает так, что любой OCI-registry (вроде ghcr.io или Azure Container Registry) начинает работать как обычный Python-index.
То есть можно использовать GitHub Packages как приватный PyPI — с уже встроенной системой доступа и без лишней настройки.
➡️ Как это работает
1⃣ PyOCI выступает прокси между
pip и вашим OCI-registry.2⃣ Он поддерживает любые регистры, реализующие [OCI distribution spec](https://github.com/opencontainers/distribution-spec).
3⃣ После публикации пакеты появляются прямо в интерфейсе OCI — как обычные контейнеры, просто с метаданными Python-пакетов.
Пример установки:
pip install --index-url="https://<user>:<token>@pyoci.com/<registry>/<namespace>/" <package>
Пример: установка пакета
hello-world из организации allexveldman через ghcr.io:pip install --index-url="https://$GITHUB_USER:$GITHUB_TOKEN@pyoci.com/ghcr.io/allexveldman/" hello-world
Идеально подходит, если хочется:
🔃 держать приватные Python-пакеты в GitHub Container Registry,
🔃 не возиться с доступами в PyPI,
🔃 использовать уже существующую инфраструктуру Docker-образов.
📱 Репозиторий
🐸 Библиотека питониста
#буст