#Что означает ошибка
ERROR: Could not find a version that satisfies the requirement ERROR: No matching distribution found
ERROR: No matching distribution found for package и Could not find a version that satisfies the requirement означают, что pip не нашёл подходящий файл пакета для вашей системы. Причины: опечатка в названии, пакет не поддерживает вашу версию Python или платформу, нет доступа к индексу, указана несуществующая версия.
Pip выводит список доступных версий — читайте его.
Проверьте имя, версию Python и архитектуру.
pip не нашёл подходящую версию пакета: опечатка в названии, пакет не поддерживает вашу версию Python или платформу, либо нет доступа к индексу.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Опечатка в имени | Название. | Проверьте на pypi.org. |
| Версия Python не поддерживается | Слишком новая или старая. | Выберите версию. |
| Нет сборки под платформу | Wheel. | Установите компилятор. |
| Нет доступа к индексу | Сеть. | Проверьте. |
#Пошаговое решение
- Проверьте имя пакета на pypi.orgОткройте терминал внутри виртуального окружения вашего проекта (если оно используется) и прочитайте в сообщении название пакета и ограничение версии, например
package==1.2.3. Сверьте название наhttps://pypi.org/и страницу официального проекта: имя установки может отличаться от имени модуля Python (Pillowустанавливается какPillow, импорт —PIL). Если это внутренний пакет компании, не ищите его на публичном PyPI: выясните правильный внутренний индекс у администратора. Не устанавливайте похожий пакет без проверки его владельца. - Посмотрите доступные версииВ терминале проекта запустите
python -m pip --versionиpython --version(Windows, если Python доступен только через Launcher:py -m pip --version). На Linux/macOS команда интерпретатора может бытьpython3; используйте тот, которым запускается ваше приложение. Проверьтеpython -m pip index versions ИМЯ_ПАКЕТА, заменив имя реальным — команда показывает опубликованные версии, но может не включать выпуски, которые не подходят вашей платформе. При прямом ограничении==...убедитесь, что нужная версия вообще существует. - Проверьте версию и архитектуру PythonВыполните
python -c "import platform,sys; print(sys.version); print(platform.machine()); print(platform.system())"и сравните с требованиямиRequires-Python, метками wheels и операционной системой на странице конкретного выпуска PyPI. Например, пакет может требовать Python 3.11+, а у вас 3.9, либо не иметь сборки для ARM. Если Python не подходит, создайте отдельное виртуальное окружение на поддерживаемой версии; не заменяйте системный Python работающего сервера или приложения без плана переноса. - Обновите pipВ том же окружении проверьте
python -m pip --versionи при необходимости обновите pip штатным способомpython -m pip install --upgrade pip, если ваша среда позволяет это. На управляемых ОС пакетный Python может запрещать глобальные установки (externally managed); в таком случае используйтеpython -m venv .venvи активируйте его вместоsudo pipили--break-system-packages. Повторите установку конкретного пакета и прочитайте, не сменилась ли ошибка на «сборка wheel не удалась». - Проверьте index-urlВыполните
python -m pip config list -vи проверьте, какойindex-urlустановлен; он может ссылаться на корпоративный сервер без нужной версии. Если ожидается внутренний индекс, узнайте у администратора правильный адрес и права, не вставляйте логины/пароли в общедоступные команды. Для публичного пакета проверьте доступность PyPI через браузер илиhttps://pypi.org/simple/и настройки прокси; не используйте--trusted-hostдля обхода сертификатов. При сохранении ошибки приложите точные версии Python, pip, ОС и весь текст требований (без секретов).
#Имя и версия
Проверьте написание на : pip install opencv-python, а не cv2; pip install scikit-learn, а не sklearn; pip install pillow, а не PIL. Посмотрите доступные версии: pip index versions пакет или pip install пакет==. Укажите существующую версию. Проверьте предрелизы: pip install --pre пакет.
#Версия Python и платформа
Узнайте версию и архитектуру: python --version, python -c "import platform; print(platform.machine())". Новые пакеты не поддерживают очень старые Python, а свежие версии Python (только что вышедшие) часто не имеют готовых колёс. Установите подходящую версию Python (3.10–3.12) и создайте окружение. На ARM (Apple Silicon, Raspberry Pi) для некоторых пакетов нет бинарных колёс — потребуется компилятор или conda.
#Индекс и сеть
Проверьте pip config list на нестандартный index-url (внутренний репозиторий без нужного пакета). Проверьте доступ к PyPI: curl -I https://pypi.org/simple/пакет/. Обновите pip: python -m pip install --upgrade pip, старые pip не понимают новые теги колёс. Для 32-битного Python на 64-битной системе пакеты могут отсутствовать — установите 64-битную версию.
# Используйте один и тот же интерпретатор, которым запускается проектpython --versionpython -m pip --versionpython -c "import platform,sys; print(sys.version); print(platform.machine()); print(platform.system())"# Подставьте реальное имя пакета вместо requests при проверке:python -m pip index versions requestspython -m pip config list -v