Запросы (вызвано SSLError («Не удается подключиться к URL-адресу HTTPS, поскольку модуль SSL недоступен.») Ошибка на веб-сайте, запрашивающем PyCharm

Использование запросов в Python3 Windows через Pycharm и получение ошибки SSL Module Not Available

Я часами пытался понять, что могло быть причиной этого. Я переустановил Anaconda, и я полностью застрял. При запуске следующих

def Earlybird(daycount):
    url = 'https://msft.com'
    response = requests.get(url)
    print(response)
Earlybird()

Я получаю ошибку

requests.exceptions.SSLError: HTTPSConnectionPool(host='msft.com', 
port=443): Max retries exceeded with url: / (Caused by SSLError("Can't 
connect to HTTPS URL because the SSL module is not available."))

Понятия не имею, что могло быть причиной этого. Поскольку Anaconda установлена ​​недавно, я предполагаю, что все будет в актуальном состоянии, поэтому я не уверен, указывает ли это на неправильный SSL? Я немного новичок в python, поэтому благодарим за терпение. -

Установил этот slproweb.com/download/Win64OpenSSL-1_1_1c.exe из OpenSSL. Решил мою проблему.

Matej Novosad 01.07.2019 21:20
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
106
1
180 333
26

Ответы 26

переход на веб-сайт: дает мне следующую информацию из инструмента разработчика и просматривает заголовки. (щелкните правой кнопкой мыши -> проверить. затем откройте вкладку сети и проверьте заголовки)

  • URL запроса: http://www.msft.com/
  • Метод запроса: ПОЛУЧИТЬ
  • Код состояния: 200 ОК
  • Удаленный адрес: 205.178.189.130:80
  • Политика реферера: без реферера при понижении рейтинга

Итак, мы видим, что нам нужно выполнить запрос по HTTP, а не по HTTPS.

import requests


def Earlybird():
    url = 'http://msft.com/'
    response = requests.get(url)
    print(response.text)

if __name__ == '__main__':
    Earlybird()

Я решил это, установив OpenSSL по следующей рекомендации: https://github.com/conda/conda/issues/8046#issuecomment-450515815

Соответствующий билет в репозитории conda: https://github.com/conda/conda/issues/8046

Обновлять: проблема (в PyCharm) должна быть решена в версии 2019.1 (уже доступна сборка Early Access Preview https://www.jetbrains.com/pycharm/nextversion/).

У меня была аналогичная проблема в Windows 10 с использованием Conda и Python 2.7.2.

Попробовав много-много решений, я наткнулся на этот ответ, который предполагал, что в этой сборке есть проблема с openssl.

Как только я понизил версию python до версии 3.7.1 (сборка h33f27b4_4), все заработало нормально.

Не знаю, решена ли эта проблема, но у меня возникали аналогичные проблемы с Anaconda python 3.7.3 и Idle в Windows 10. Исправил, добавив:

<path>\Anaconda3
<path>\Anaconda3\scripts
<path>\Anaconda3\Library\bin

в переменную PATH.

Хотя не знаю, почему мы должны экспортировать несколько путей, но у меня это работает, спасибо.

hui chen 01.07.2019 14:44

ЭТО Сработало для меня! не "execstack ..." cmd, а вот этот! добавление пути / anaconda3 / library / bin сработало для меня

ERJAN 07.10.2019 18:33

Не уверен, что понимаешь, как / где мы должны добавить эти 3 пути?

Alex Dana 09.04.2020 17:36

Alex - добавьте эти элементы в переменную среды PATH (например, см. Ответ Мукеша Метания / Neuron ниже)

Paul Stevens 10.04.2020 11:31

Куда мне добавить эти пути? Я пытаюсь запустить код Python из определенной папки с помощью python get-pip.py

Henry Navarro 28.04.2020 11:24

Работал на Anaconda Python 3.8.3 на сервере Windows 10. Просто пришлось изменить локальную переменную окружения path.

EliSquared 08.02.2021 23:05

Это решение намного лучше, чем установка ssl_verify: false, как предлагается в других сообщениях (например, stackoverflow.com/questions/42563757/…). Судя по всему, у этого решения есть проблемы с безопасностью.

Tim John 29.09.2021 23:40

Похоже, что мои пользовательские переменные допускают только один ПУТЬ, он продолжает заменять мой старый ПУТЬ, поэтому я не могу получить все 3. Может ли кто-нибудь мне помочь?

Micah 14.10.2021 16:17
stackoverflow.com/questions/60974818/… Это решило мою проблему: Использование; чтобы отделить каждый путь.
Micah 14.10.2021 16:30

Я установил двоичные файлы отсюда: https://slproweb.com/products/Win32OpenSSL.html Этот сайт упоминается в официальной вики OpenSSL. Это решило мою проблему

там много бинарников, какой именно? Было бы здорово сделать точную ссылку или скриншот. Я использовал первую ссылку с файлом MSI, и она сработала, спасибо другу: slproweb.com/download/Win64OpenSSL_Light-1_1_1b.msi

Stepan Yakovenko 24.05.2019 17:19

Пользователям Windows необходимо указать следующие пути:

  • ..\Anaconda3
  • ..\Anaconda3\scripts
  • ..\Anaconda3\Library\bin

На пользователя:

  1. Переменная открытого окружения
  2. Нажмите User Variable
  3. Закройте командную строку, если она уже открыта, и снова откройте ее.

Общесистемный (требуется перезагрузка) :

  1. Переменная открытого окружения
  2. Нажмите System Variable
  3. Перезагрузите Windows

Работает на меня. Спасибо.

Haitham Gamal 14.07.2021 10:53

Где вы прокладываете путь? Добавить «новый», а затем указать путь для каждой из папок Anaconda3?

Micah 14.10.2021 15:57

Нет необходимости добавлять пути к окружению, если вы используете Анаконда Подсказка.

Запустите изменение приглашения Anaconda в свой каталог и запустите свой сценарий или запустите редактор оттуда. Это гарантирует, что вы находитесь в полной среде Anaconda, и ошибка SSL прекратится.

В чем разница между командной строкой и Anaconda Prompt? См. Этот SO-ответ на в чем разница между командной строкой и подсказкой анаконды.

Примечание: Эта проблема была исправлена ​​в Windows 10. У меня возникла такая же проблема с виртуальной средой в Windows 10. Проблема была решена запуском CMD от имени администратора и созданием новой виртуальной среды.

  • Запускаем cmd от имени администратора
  • создать виртуальную среду (virtualenv .venv)
  • активировать виртуальную среду .venv \ Scripts \ активировать
  • Запросы на установку Pip

Решено, выполнив следующие действия в моих окнах 10:

mklink "C:\Users\hal\AppData\Local\Continuum\anaconda3\DLLs\libssl-1_1-x64.dll" "C:\Users\hal\AppData\Local\Continuum\anaconda3\Library\bin\libssl-1_1-x64.dll"

mklink "C:\ProgramData\Anaconda3\DLLs\libcrypto-1_1-x64.dll" "C:\ProgramData\Anaconda3\Library\bin\libcrypto-1_1-x64.dll"

Я использую VSCode для редактирования и отладки, и единственное решение, которое сработало для меня, - это редактировать переменные среды в Windows. Очевидно, это вызывает проблемы, но я не уверен, что они собой представляют.

Запуск из командной строки Anaconda (как было предложено сайтом) НЕ был для меня вариантом. Или, возможно, предлагалось запустить приглашение анаконды, а из приглашения анаконды каким-то образом запустить VSCode. Не похоже на разумную просьбу.

Похоже, что это давняя хроническая проблема без окончательного глобального ответа, подходящего для всех.

Не уверен, что означает «неразумный запрос», но на самом деле это хорошая практика для избежания странных ошибок, и она также решает эту ошибку. Это несложно, просто введите code в командной строке для запуска VS Code.

Denziloe 24.06.2021 20:21

Переустановка python на основе приведенных здесь инструкций решила для меня эту проблему: Как я могу установить предыдущую версию Python 3 в macOS с помощью homebrew?

У меня нет Anaconda, поэтому я предпринял следующие шаги:

  • brew uninstall python3
  • brew install python3
    • получил сообщение об ошибке Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store. ** Итак, я удалил Xcode, так как никакое обновление не показывалось, а затем переустановил его.
    • запустил xcode-select --install после. Если вы этого не сделаете .. вы получите сообщение об ошибке: The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
  • запустил brew install python3, и он успешно завершился.

Использовал этот скрипт, чтобы посмотреть, работает ли он

import requests
r = requests.get('https://www.office.com')
print(r)

Запустил скрипт python3 и python3.7, и на выходе получился <Response [200]> вместо SSLError.

Потратив несколько часов на изучение документации Anaconda, вопросов о выпуске Github и т. д., Мне, наконец, удалось заставить его работать в 64-разрядной версии Windows 10 (Anaconda 3.7). У меня это сработало, так это установка двоичного файла Win64 OpenSSL v1.1.1d из https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe.

ПРИМЕЧАНИЕ: Версия имеет значение! Я пробовал 1.1.0L (как предлагалось в других комментариях и ответах), но с этой версией проблема не исчезла. Если у вас по-прежнему возникают проблемы после установки некоторых библиотек OpenSSL, продолжайте попытки, пока не найдете нужную версию. Для Anaconda 3.7 в Windows 10 кажется, что правильным является версия 1.1.1d. Лёгкую версию не пробовал.

То, что не работает для меня:

Я использую Windows 10, у меня возникла проблема с новой новой установкой Anaconda на python 3.7.4, этот пост на github решил мою проблему:

(источник: https://github.com/conda/conda/issues/8273)

Цитирую:

" Мое решение: Я скопировал следующие файлы

libcrypto-1_1-x64.*
libssl-1_1-x64.*

из D: \ Anaconda3 \ Library \ bin в D: \ Anaconda3 \ DLLs.

И это работает как шарм! "

Для меня одинаковые версии всего. Windows 10 Miniconda с версией 3.7.4. Исправлено этим решением.

Kevin Vasko 12.05.2020 22:59

Столкнулся с этим 04/2020. Это варианты, которые я пробовал, и последнее решение помогло мне.

Проблема:

Модуль запросов работает нормально, когда я использую Spyder IDE, но когда я пытаюсь выполнить скрипт в Windows, он терпит неудачу с ошибкой SSL. Он отлично работает для HTTP-запросов, но для HTTPS-запросов я получил ошибку SSL.

  1. Устал с Veify = True, False, тоже с Certs. Та же ошибка.
  2. Удален Certifi - conda remove certifi - Не работает Обновлено
  3. openssl, certifi - Все еще та же ошибка (См .: https://github.com/ContinuumIO/anaconda-issues/issues/494) Добавлен
  4. переменные пути - Та же ошибка
  5. Создана новая среда в Анаконда - та же ошибка

Решение, которое исправило это:

Решение от: https://github.com/conda/conda/issues/8273

Я скопировал следующие файлы из Anaconda3 \ Library \ bin в \ Anaconda3 \ DLL

libcrypto-1_1-x64. * libssl-1_1-x64. *

У меня это тоже сработало! Спасибо, что прошли все этапы отладки :)

Lou 30.09.2020 15:15

эта проблема сводила меня с ума, пока я не нашел этот пост, в котором говорилось, что нужно делать

brew upgrade python3 

(без использования pycharm, с использованием возвышенного)

Ошибка при импорте ssl в Python 3.7.4 на macOS 10.14.6

Обнаружена та же ошибка SSL при установке pip после новой установки anaconda. Что помогло, так это активация базовой среды перед установкой pip. Сделайте activate base из cmd, а затем запустите свой скрипт python. Вы также можете попробовать 'conda run -n base python script.py' Reference - https://github.com/conda/conda/issues/8487

У меня было то же самое при установке Windows 10.

Anaconda3 не открывал Anaconda Navigator до того, как я скопировал libcrypto-1_1-x64.dll and libssl-1_1-x64.dll из Anaconda3\Library\bin to \Anaconda3\DLL.

Как только я установил pip в базовой среде, она работала нормально, но не в другой среде, которую я создал. Мне пришлось сделать то же самое, что и выше, в новой среде.

То есть скопируйте libcrypto-1_1-x64.dll and libssl-1_1-x64.dll с \<env folder>\Library\bin на \<env folder>\DLL, тогда все заработало.

После решения той же проблемы в Windows 10 решение довольно простое:

  1. Открыть подсказку Anaconda
  2. Запускаем conda init
  3. Закройте и снова откройте все открытые интерпретаторы Python (PyCharm, Anaconda Prompt, cmd и т. д.), В которых вы хотите запустить свой код.

Запустите свой код еще раз, и он должен работать. Я обновил и Anaconda, и PyCharm, и у меня была проблема со всеми комбинациями версий, пока я не запустил conda init, который добавляет в ваш PATH, как и ответ от Пол Стивенс. Не пропускайте №3 - перезапуск PyCharm или любого другого интерпретатора является ключевым.

Большое вам спасибо за это! VSCode только что завершил ежемесячное автоматическое обновление на моей машине, и внезапно появилась эта проблема, и ваше решение сработало отлично :)

Adam DS 03.09.2021 18:57

Эта ошибка возникает в VSCode с Python 3.7.3, но отлично работает в редакторе IDLE в Windows 10 с Python 3.7.0.

Я использую этот "Win64 OpenSSL v1.1.1h" -> EXE от https://slproweb.com/products/Win32OpenSSL.html

я установил и работает

Добро пожаловать в StackOverflow! Это решение уже предлагалось в Другаяответы. Перед публикацией убедитесь, что ваше решение новое.

Sergey Shubin 15.10.2020 09:00

Убедитесь, что вы создаете проект с выбранной опцией среды conda.

Моя проблема решена путем воссоздания проекта и выбора «conda» в параметрах «Новая среда с использованием».

см. изображение:

New environment setting

Просто нужно было Add Interpreter затем выбрать existing environnement, и это помогло. Не нужно воссоздавать проект.

Loïc G. 24.01.2021 15:59

В Windows 10 - это обходной путь, который, однако, не решает основную проблему, если вам просто нужно что-то установить и двигаться дальше; Выполните следующее в командной строке, PowerShell или dockerfile:

pip config set global.trusted_host "pypi.org files.pythonhosted.org"

Я также столкнулся с той же проблемой на машинах моих товарищей по команде. Исправлено то же самое с добавлением пути анаконды. В моей системе ниже указан путь Анаконды:

C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\
C:\ProgramData\Anaconda3\Library\bin

Убедитесь, что команда запускается из виртуальной среды; это была моя ошибка.

У меня была такая же проблема в VS Code.

Решением было запустить VS Code с помощью Anaconda Prompt.

То есть запустите Anaconda Prompt, активируйте виртуальную среду, если вы ее используете, а затем введите code [working directory].

Другие вопросы по теме