Connect with us

Обучение

Ошибка HTTPSConnectionPool в Python

(host=files.pythonhosted.org, port=443)

218

Частая ошибка HTTPSConnectionPool в Python и пути решения

При установке пакетов вы можете столкнуться с тем, что ни среда программирования (PyCharm), ни сам интерпретатор не может достучаться до сервера https://files.pythonhosted.org/ с которого и скачиваются библиотеки и модули. Дело в том, что pip (pip — это система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python) по каким-то причинам не может получить сертификат SSL (например, в вашей корпоративной сети используется свой собственный центр сертификации). Таким образом, не проходит инсталляция модулей, т.к нет доступа на files.pythonhosted.org. Возможно, это связано с блокировкой Роскомнадзора.

Как решить?

В сети множество способов решения проблемы, но какой из них поможет — загадка. Поэтому нужно попробовать все варианты последовательно. Самым эффективным считаем «ручной» способ установки. Так же нужно понимать, что все эти решения — обходной путь. Самой проблемы с сертификатами это не решит, однако, если нет времени на разборки с SSL, то такие методы вполне могут быть временным «костылём»

Команды pip install и его производные выполняются в командной строке (cmd.exe)

Вариант №1. Игнорировать SSL

Для начала можно попробовать пропустить проверку SSL-сертификатов. Чтобы игнорировать ошибки SSL необходимо установить pypi.org и files.pythonhosted.org в качестве доверенных хостов. Делается это так:

pip install —trusted-host pypi.org —trusted-host files.pythonhosted.org <имя библиотеки>

Вариант №2. Использовать «быструю» установку

Быстрая установка подразумевает пропуск проверки сертификатов или версии pip. Считается небезопасным способом установки, но для нашего случая — верное решение. Синтаксис команды:

easy_install <имя библиотеки>

Вариант №3. Обновить pip

Чтобы избежать ошибки, можно попробовать обновить сам pip командами

pip install —trusted-host pypi.org —trusted-host files.pythonhosted.org pip setuptools

или

pip install —upgrade pip —trusted-host pypi.org —trusted-host files.pythonhosted.org

Проблема в том, что сам pip обновляется так же через files.pythonhosted.org, поэтому этот способ вряд ли поможет

 

Вариант №4. Увеличить таймаут

Таймаут или время ожидание сокета — это максимальное время, в течение которого поток данных на уровне сокета прерывается до возникновения ошибки (а не время для загрузки пакета). Соответственно, при плохом, нестабильном, низкоскоростном подключении возможен вариант, когда соединение не может быть установлено или прерывается из-за истечения времени ожидания. Для решения этой проблемы мы в запрос добавляем ключ —default-timeout. Подходящее значение тайм-аута зависит от вашей скорости и качества соединения (по умолчанию таймаут установлен в 15 секунд)

pip install —default-timeout=100 <имя_библиотеки>

Вариант №5. Использовать «ручную» установку

Если из текущей сети/конфигурации у нас нет доступа к files.pythonhosted.org, то можно скачать пакет через браузер, а затем установить с локального ПК, а не стучаться в онлайн-репозиторий. При этом, если вы просто зайдете на сайт, то страница может не открыться — потребует SSL-сертификат. Как в таком случае скачать пакет, если нет доступа на files.pythonhosted.org? Покажем на примере библиотеки ORM SQLAlchemy

1. Ставим прокси на браузер. Для Google Chrome можно использовать бесплатный плагин browsec.

2. Заходим на files.pythonhosted.org и вставляем ссылку. Как нам получить ссылку на то, что пытается скачать интерпретатор, на наш пакет? Ссылка на скачивание содержится в самой ошибке. Необходимо просто скопировать нужную часть и вставить в браузер

При переходе на такую ссылку начнется скачивание

3. Теперь у нас есть архив библиотеки. Зайдите в вашу папку загрузок и разархивируйте его

4. Скопируйте путь до папки. Откройте папку в проводнике и скопируйте в буфер обмена путь до неё.

5. Открываем CMD. Пишем pip install <вставляем путь до папки из буфера>. Нажимаем Enter и установка пошла

 

6. Если у вас в среде разработки не появилась нужная библиотека (после установки Python надо рестартануть, либо просто перезагрузите ПК), то необходимо скопировать её из каталога, куда она была установлена,  в тот каталог, где находятся библиотеки для вашего проекта (обычно это /venv/lib)

 

Теперь можете открыть среду программирования, в нашем случае, это PyCharm. В настройках проекта (File -> Settings -> Project) мы видим, что SQLAlchemy успешно установлена

Вариант №6. Создать файл pip.ini

Некоторые пользователи решают проблему путем создания стандартного файла конфигурации pip.ini, где содержатся все параметры командной строки по умолчанию. В документации указано, что файл должен находиться в каталоге %APPDATA%. Его абсолютный путь: C:\Users\<имя_пользователя>\AppData\Roaming\. Там нужно создать папку pip  (если её нет), в котором создать текстовый файл с помощью блокнота и записать все сайты, которые участвуют в установке пакетов. Запись выглядит так:

[global] trusted-host = pypi.python.org
pypi.org
files.pythonhosted.org

Сохраняйте файл с расширением .ini и перезапустите питон (либо перезагрузите ПК). После этого устанавливайте библиотеки из командной строки стандартным способом — pip install
В некоторых источниках указано, что файл pip.ini надо создавать в каталоге C:\ProgramData\pip. Необходимо попробовать оба варианта:

Вариант №7. Установить правильную дату и время

Причиной невозможности установить соединение по защищенному протоколу (SSL или HTTPS) может быть неправильные дата и время на устройстве. Поэтому обязательно проверьте или синхронизируйте эти параметры на ПК/ноутбуке/планшете

Вариант №8. Установить корневые сертификаты

Попробуйте установить пакет свежих корневых сертификатов

pip install certifi

Нажмите что бы оставить комментарий

Ответить

Ваш e-mail не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

autoteka-digital2-vin autoteka-digital2-vin

Проверка авто по Автотеке: может ли она обмануть?

Сервисы

.

Digital2.ru - Тренды, IT, WEB- разработка, Цифровая экономика
Свободное копирование и распространение материалов с сайта Digital2.ru
разрешено только с указанием активной ссылки на Digital2 как на источник.
Данный сайт в ходит структуру медиа группы: Online Payments Group Intellect Organic
Товарный знак: OPGIO
Copyright 2019 © All rights reserved

Connect
Подпишись на нас