Как устранить ошибку установки scipy на Python через pip
#Основы Python #Виртуальные окружения (venv/poetry) #pip и зависимостиБыстрый ответ
Ошибка "filename.whl не поддерживается на данной платформе" появляется, когда файл wheel не соответствует требованиям вашей системы. Рассмотрим на примере this_pkg-1.2.3-cp39-cp39-manylinux1_x86_64.whl. Теги cp39, cp39 и manylinux1_x86_64 указывают, что этот пакет предназначен для использования с Python 3.9 на 64-битной Linux системе. Чтобы устранить ошибку, найдите подходящий файл wheel или скомпилируйте пакет из исходников. Установка файла wheel выполняется командой:
pip install this_pkg-1.2.3-cp39-cp39-manylinux1_x86_64.whl
Примечание: При замене this_pkg-1.2.3-cp39-cp39-manylinux1_x86_64.whl на имя скачанного файла wheel соблюдайте точность.

Расшифровка имени файла wheel и особенностей вашей системы
При возникновении ошибки первым делом стоит обратить внимание на имя файла и характеристики системы. Файл wheel имеет имя по определенному шаблону: пакет-версия-cpXY-none/abi3/платформа.whl, где XY должно соответствовать версии Python на вашем компьютере.
Запуск вашего pip
Обновите pip до последней версии для гарантии совместимости с файлами wheel:
# Разработчики Python предпочитают свежие версии
python -m pip install --upgrade pip
Обновление pip часто способствует корректной работе с файлами wheel.
Определение архитектуры Python
Введите следующую команду для определения является ли ваш Python 32-битным или 64-битным:
# Python поможет определить текущую архитектуру
python -c "import struct;print(8 * struct.calcsize('P'))"
Ответом будет 32 или 64, что указывает на архитектуру вашей версии Python и должно соответствовать тегу файла wheel.
Поиск файлов wheel в интернете
Если на PyPI необходимый вам файл wheel отсутствует, попробуйте найти неофициальные сборки для Windows, например, на сайте Christoph Gohlke:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
Сайты подобного рода зачастую содержат уникальные бинарные пакеты, которые могут стать настоящей находкой для пользователей Windows.
Визуализация
| Тег Wheel | Замок (Платформа) |
| ------------------------------- | ------------------ |
| cp27-cp27m-win_amd64 | 🔑🔒 |
| cp38-none-any | 🔑🌍 |
| cp36-cp36m-macosx_10_9_x86_64 | 🔑🍏 |
- 🔑🔒: Ключ к определенной системе, необходимый для установки.
- 🔑🌍: Универсальный ключ, подходящий вне зависимости от системы.
- 🔑🍏: Специфический ключ, требуемый в среде macOS.
Подводя итог:
🖥️ Ключ файла filename.whl 🔑 должен соответствовать системе, на которой он будет устанавливаться 🔒.
Установка файла wheel невозможна при несовпадении ключа!
Применяем мощные решения – Сборка из исходного кода
Если ваша система не поддерживает имеющиеся файлы wheel, соберите пакет из исходников:
pip install --no-binary :all: package_name
# Эффективное решение, если нет скомпилированных файлов wheel
Такой подход заставляет pip компилировать пакет, а не искать готовые файлы wheel.
Анализ работы pip с использованием отладочного вывода
Отладочный вывод pip можно использовать для анализа проблем:
pip install your_package.whl -v
# Вы получите больше информации, чем только сообщение об ошибке!
Эти логи помогут понять, почему pip отклоняет установку wheel файла.
Предотвращение начальных ошибок – проверьте имя файла
Убедитесь, что имя файла wheel было указано без опечаток и точно отражает требуемые характеристики. Опечатки, ошибки в указании версий могут стать причиной возникновения ошибок.
При обновлении не забывайте о соответствии версии Python требованиям пакетов. Последние выпуски Python обычно совместимы с большим числом современных пакетов.
Полезные ссылки
- PEP 425 – Совместимость тегов для сборок — объясняет принципы именования и теги совместимости для файлов wheel.
- Упаковка и распространение проектов – Пользовательское руководство Python — официальное руководство по созданию и распространению пакетов Python с использованием wheel.
- setuptools – Как создать wheel, оптимизированный для конкретной платформы? – Stack Overflow — практические рекомендации по созданию файлов wheel для определенных платформ.
- Python Wheels — общая информация о файле wheel и его преимуществах при распространении пакетов Python.
- GitHub – pypa/pip: Инструмент для установки пакетов Python — официальный репозиторий инструментария pip для работы с Python пакетами.
- Конвертация кода из Python 2 в Python 3 — Документация Python — рекомендации по обеспечению совместимости кода между разными версиями Python.
- GitHub – pypa/auditwheel: Аудит и изменение Linux wheel файлов для обеспечения их переносимости — инструмент для создания переносимых Python wheel, подходящих для разных Linux дистрибутивов.
Агата Суркова
разработчик API