На нескольких проектах последние несколько дней сталкиваемся с проблемами с доступом к PyPI: как локально, так и в CI. Печально.
All attempts to connect to pypi.org failed.
Probable Causes:
- the server is not responding to requests at the moment
- the hostname cannot be resolved by your DNS
- your network is not connected to the internet
Если у вас есть такая же проблема, можете воспользоваться PyPI зеркалом от GitVerse: https://gitverse.ru/docs/artifactory/registry-mirrors/pypi-mirror?utm_source=tg&utm_medium=fix&utm_campaign=bloggers&utm_content=post&utm_term=nikitasobolev&utm_erid=2VfnxxwjcVp
Все пакеты и все версии, которые есть на PyPI - оттуда тоже доступны. Перевел консалтинговые проекты - заработало.
Как настроить?
pip, документация:
# Установка одного пакета:
pip install attrs --extra-index-url https://pypi-mirror.gitverse.ru/simple/
# Настройка для всех команд:
pip config --user set global.index-url https://pypi-mirror.gitverse.ru/simple/
pip config --user set global.trusted-host pypi-mirror.gitverse.ru
Можно настроить как альтернативный, а не главный индекс: вместо global.index-url используйте global.extra-index-url.
poetry, документация:
# pyproject.toml
[[tool.poetry.source]]
name = "pypi"
priority = "primary"
[[tool.poetry.source]]
name = "gitverse"
url = "https://pypi-mirror.gitverse.ru/simple/"
priority = "supplemental"
Сначала пробуем pypi, если не вышло - идем в зеркало.
Можно повернуть priority в зависимости от ваших задач.
uv, документация:
# pyproject.toml
[[tool.uv.index]]
url = "https://pypi.org/simple/"
name = "pypi"
default = true
[[tool.uv.index]]
url = "https://pypi-mirror.gitverse.ru/simple/"
name = "gitverse"
Здесь аналогично, default имеет самый низкий приоритет.
Важно: обратите внимание, чтобы при использовании любых зеркал, у вас были корректные хеши пакетов при установке. poetry и uv делают такое по-умолчанию. А вот pip требует явного --require-hashes параметра. Сам pip тем временем не умеет дампить хеши, но pip-tools умеет 🌚
Пример, корректной работы:
» uv sync --default-index https://pypi-mirror.gitverse.ru/simple/
Resolved 171 packages in 20ms
Checked 102 packages in 13ms
Еще есть зеркала для:
- DockerHub
- NPM
- Maven
Обсуждение: вас затронула проблема?
Реклама. ПАО "СБЕРБАНК", ИНН 7707083893. erid: 2VfnxxwjcVp