Перейти к содержимому

PyPI

NORA реализует спецификации PEP 503 (Simple Repository API) и PEP 691 (JSON Simple API). Загружайте пакеты с помощью twine и устанавливайте через pip с прозрачным проксированием из pypi.org.

Установка пакетов через NORA:

Окно терминала
pip install --index-url http://nora.example.com:4000/simple/ my-package

Настройка pip.conf для проекта или через переменную окружения:

Окно терминала
export PIP_INDEX_URL=http://nora.example.com:4000/simple/

Загрузка пакетов:

Окно терминала
twine upload --repository-url http://nora.example.com:4000/simple/ dist/*

NORA загружает пакеты из PyPI, если они не найдены локально. URL для скачивания на страницах индекса перезаписываются для загрузки через NORA.

config.toml:

[pypi]
enabled = true
proxy = "https://pypi.org/simple/"
proxy_timeout = 30

Переменные окружения:

ПеременнаяОписаниеПо умолчанию
NORA_PYPI_ENABLEDВключить реестр PyPItrue
NORA_PYPI_PROXYURL upstream-реестраhttps://pypi.org/simple/
NORA_PYPI_PROXY_AUTHАутентификация upstream (user:pass)
NORA_PYPI_PROXY_TIMEOUTТаймаут upstream в секундах30
ФункцияСтатусПримечание
Simple-индекс (HTML)ПолнаяPEP 503
Simple-индекс (JSON)ПолнаяPEP 691, через заголовок Accept
Страница версий пакетаПолнаяHTML + JSON
Скачивание файловПолнаяWheel, sdist, egg
twine uploadПолнаяMultipart form-data
Хеши SHA256ПолнаяВ ссылках метаданных
Нормализация регистраПолнаяMy-Package становится my-package
JSON API метаданныеПолнаяapplication/vnd.pypi.simple.v1+json
Upstream-проксиПолнаяНастраиваемый TTL
YankingНе реализовано
Подписи загрузки (PGP)Не реализовано

Когда NORA работает за Caddy, Traefik или Nginx, установите NORA_PUBLIC_URL, чтобы ссылки на скачивание указывали на внешний адрес, а не на http://0.0.0.0:4000:

Окно терминала
NORA_PUBLIC_URL=https://registry.example.com

Если прокси использует самоподписанный сертификат, pip молча падает с ошибкой “No matching distribution found”. Решение:

Окно терминала
# Вариант 1: доверять хосту
pip install --trusted-host registry.example.com my-package
# Вариант 2: указать CA-сертификат
pip install --cert /path/to/ca.crt my-package

Для постоянной настройки создайте ~/.pip/pip.conf:

[global]
index-url = https://registry.example.com/simple/
trusted-host = registry.example.com

Подробнее о настройке TLS — в разделе TLS / HTTPS.

  • Yanking не поддерживается.
  • PGP-подписи при загрузке не поддерживаются.