Решение: Ошибка TLS/SSL при установке модулей в Python
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Если вы столкнулись с ошибкой связанной с модулем SSL в Python, следуйте указанным ниже шагам:
- Переустановите Python, не забыв проставить галочку напротив пункта поддержки SSL в процессе установки.
- Проверьте работоспособность SSL в Python, используя команду
python -m ssl
. - Для пользователей Unix-подобных систем установите OpenSSL, запустив следующие команды:
./configure --with-openssl # Указываем путь до OpenSSL
make # Даем команду на компиляцию
make install # Производим установку скомпилированных файлов
Таким образом, настройка SSL для Python выполнена, и pip
будет функционировать без возникновения ошибок.
Анализ проблемы SSL
SSL – это аббревиатура, которая может ввести вас в заблуждение, если она отсутствует в Python. Без нее Python невозможно осуществлять безопасное соединение с серверами по HTTPS, что, в свою очередь, приводит к тому, что pip
не может скачивать необходимые пакеты. Причины этого могут быть различными.
Запомните три следующих пути в вашей файловой системе: D:\Anaconda3
, D:\Anaconda3\Scripts
и D:\Anaconda3\Library\bin
. Отдельное внимение уделите последнему, так как именно в нем необходимые для работы SSL/TLS ключевые файлы OpenSSL
располагаются.
Разговор о MacOS и Linux
Пользователи Mac, вашим спасением при возникновении проблем с SSL будет Homebrew
. Для переустановки Python с OpenSSL, используйте следующие команды:
brew install openssl # Устанавливаем OpenSSL через утилиту Brew
brew install python # Устанавливаем Python
Таким образом, MacOS настроена и готова к работе с SSL-соединениями.
Для пользователей Debian существует пакет libssl-dev
, который содержит всё необходимое для работы SSL в Python:
sudo apt-get install libssl-dev # Устанавливаем пакет, содержащий поддержку SSL
Правильно настройте переменные окружения для решения проблем с SSL
Переменные окружения – это как навигационная система для Python. Если они настроены неверно, Python потеряется:
- Для пользователей Anaconda или Miniconda, добавьте
D:\Anaconda3
,D:\Anaconda3\Scripts
, иD:\Anaconda3\Library\bin
в переменные окружения. - Перезапустите терминал, чтобы активировать новые пути.
- Проверьте доступность модуля SSL, запустив
python -m ssl
.
Если вы установили Python вручную на Unix подобных системах и у вас возникли проблемы с SSL:
- Будьте аккуратны при распаковке архивов Python перед выполнением команд
configure/make
. - Убедитесь, что файлы
libcrypto
иlibssl
размещены в нужных директориях.
Установка OpenSSL на MacOS с использованием Homebrew
Если вы управляете OpenSSL через Homebrew на MacOS, избегайте использования флага --ignore-dependencies
. Он может привести к проблемам в работе с зависимостями Python:
brew install openssl --ignore-dependencies # Не пренебрегайте важностью зависимостей
Копирование файлов как последняя мера
Иногда решение проблемы сводится к простому копированию файлов OpenSSL в директорию DLLs Python:
- Данные файлы обычно располагаются в директории
Library\bin
Anaconda или Miniconda. - Выполните поиск и копирование их в директорию
DLLs
установленной версии Python.
Пользователи Python 2.7 рекомендуются обновить версию до Python 3.7 для получения улучшенной поддержки SSL. После такого обновления pip
и модуль SSL будут работать совместно без конфликтов.
Визуализация
Представьте конфигурацию SSL как логистическую цепь:
Грузовик (pip🚛): Загружен товаром
Дороги (Интернет-пути🛣️): Требуют безопасности, необходим TLS/SSL
Вашему pip необходимо преодолеть преграду:
🚛❌🔒 Нет SSL, грузовик не может двигаться по безопасным путям!
Проясним:
🚛 = Pip, передвигающийся по маршруту для доставки пакетов (📦)
🛣️ = URL, к которому должна быть осуществлена безопасная доставка (TLS/SSL)
🔒 = Наличие SSL существенно для доступности пути
❌ = Без обеспечения безопасности доставка не возможна
Необходимо обеспечить поддержку SSL для вашего Python:
🔑 = Поддержка SSL настроена
🚛✅🔒 = Грузовик свободно перемещается по безопасным дорогам с помощью модуля SSL!
Полезные материалы
- Проблема
SSL: CERTIFICATE_VERIFY_FAILED
на Stack Overflow — Обсуждение решения проблем, связанных с SSL, в pip. - Документация по модулю SSL в Python — Описание работы модуля SSL в официальной документации Python.
- Установка пакетов – Руководство по упаковке Python — Инструкции по установке пакетов предоставленные Python Packaging Authority.
- Руководство по установке Pip — Гид по установке и устранению проблем pip.
- Репозиторий Pyenv на GitHub — Большой выбор различных версий Python на одной платформе.