Żądania (spowodowane przez SSLError („Nie można połączyć się z adresem URL HTTPS, ponieważ moduł SSL jest niedostępny”). Błąd w PyCharm żądającej witryny internetowej

89

Używanie żądań w Python3 Windows przez Pycharm i odbieranie błędu modułu SSL niedostępny

Spędziłem godziny, próbując dowiedzieć się, co może być tego przyczyną. Ponownie zainstalowałem Anacondę i całkowicie utknąłem. Podczas uruchamiania następujących plików

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

Otrzymuję błąd

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."))

Nie mam pojęcia, co może być tego przyczyną. Ponieważ Anaconda jest niedawną instalacją, zakładam, że wszystko będzie aktualne, więc nie jestem pewien, czy to wskazuje na niewłaściwy SSL? Jestem trochę nowy w Pythonie, więc dziękuję za cierpliwość. -

Frank Drin
źródło
Zainstalowałem ten slproweb.com/download/Win64OpenSSL-1_1_1c.exe z OpenSSL. Rozwiązał mój problem.
Matej Novosad

Odpowiedzi:

108

Nie wiem, czy to zostało już rozwiązane, ale pojawiały się podobne problemy z Anaconda python 3.7.3 i Idle w systemie Windows 10. Naprawiono to, dodając:

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

do zmiennej PATH.

Paul Stevens
źródło
Chociaż nie wiem, dlaczego musimy eksportować wiele ścieżek, ale to działa dla mnie, dzięki.
hui chen
1
TO DZIAŁAŁO DLA MNIE! nie "execstack ..." cmd, ale ten! dodanie ścieżki / anaconda3 / library / bin działało dla mnie
ERJAN
1
Nie wiesz, jak / gdzie musimy dodać te 3 ścieżki?
Alex Dana
Alex - dodać te elementy do zmiennej środowiskowej PATH (patrz np Mukesh Methaniya / Neuron odpowiedź poniżej)
Paul Stevens
Gdzie mam dodać te ścieżki? Próbuję uruchomić kod w języku Python z określonego folderu przy użyciupython get-pip.py
Danny Hern
30

Jestem na Windowsie 10, miałem problem z nową świeżą instalacją Anacondy na pythonie 3.7.4, ten post na github rozwiązał mój problem:

(źródło: https://github.com/conda/conda/issues/8273 )

Cytuję:

„Moje obejście: Skopiowałem następujące pliki

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

z D: \ Anaconda3 \ Library \ bin do D: \ Anaconda3 \ DLLs.

I działa jak urok! "

Matt Dnv
źródło
4
Dla mnie te same wersje wszystkiego. Windows 10 Miniconda, który miał 3.7.4. Naprawiono tym rozwiązaniem.
Kevin Vasko
14

Użytkownicy systemu Windows muszą ustawić poniższe ścieżki:

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

Na użytkownika:

  1. Otwórz zmienną środowiskową
  2. Kliknij User Variable
  3. Zamknij wiersz polecenia, jeśli jest już otwarty, i otwórz go ponownie

W całym systemie (wymaga ponownego uruchomienia) :

  1. Otwórz zmienną środowiskową
  2. Kliknij System Variable
  3. Uruchom ponownie system Windows
Mukesh Methaniya
źródło
5

Nie mam Anacondy, więc kroki, które podjąłem to:

  • brew uninstall python3
  • brew install python3
    • otrzymałem komunikat o błędzie informujący,Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store. ** Więc usunąłem Xcode, ponieważ żadna aktualizacja nie była wyświetlana, a następnie ponownie go zainstalowałem.
    • pobiegł xcode-select --installza. Jeśli tego nie zrobisz ... pojawi się błąd:The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
  • uruchomiono brew install python3i zakończyło się pomyślnie.

Użyłem tego skryptu tylko po to, aby sprawdzić, czy działa

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

Uruchomiono skrypt python3 i python3.7, a wynik był <Response [200]>zamiast SSLError.

codeherk
źródło
5

Zmierzyłem się z tym w dniu 04/2020. Oto opcje, które wypróbowałem, i ostatnie rozwiązanie prowadzi mnie.

Problem:

Moduł żądań działa dobrze, gdy używam w Spyder IDE, ale kiedy próbuję wykonać skrypt w systemie Windows, kończy się to błędem SSL. Działa dobrze w przypadku żądań HTTP, ale w przypadku żądań HTTPS otrzymałem błąd SSL.

  1. Zmęczyłem się Veify = True, False, także z Certs. Ten sam błąd .
  2. Usunięto Certifi - conda remove certifi - nie działa Zaktualizowany
  3. openssl, certifi - Wciąż ten sam błąd (patrz: https://github.com/ContinuumIO/anaconda-issues/issues/494 ) Dodano
  4. zmienne ścieżki - ten sam błąd
  5. Utworzono nowe środowisko w Anaconda - ten sam błąd

Rozwiązanie, które to naprawiło:

Rozwiązanie z: https://github.com/conda/conda/issues/8273

Skopiowałem następujące pliki z Anaconda3 \ Library \ bin do \ Anaconda3 \ DLL

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

dhina karan
źródło
Dla mnie to też zadziałało! Dzięki za przejście przez wszystkie kroki debugowania :)
Lou
2

Miałem podobny problem w systemie Windows 10 przy użyciu Conda i Pythona 2.7.2

Po wypróbowaniu wielu, wielu rozwiązań natknąłem się na tę odpowiedź która sugerowała, że ​​istnieje problem z openssl w tej kompilacji.

Kiedy obniżyłem Pythona do wersji 3.7.1 (kompilacja h33f27b4_4) wszystko działało dobrze.

harryrobbins
źródło
1

Nie ma potrzeby dodawania ścieżek do środowiska, jeśli używasz monitu Anaconda.

Uruchom monit Anaconda, przejdź do swojego katalogu i uruchom skrypt lub stamtąd uruchom edytor. Zapewni to pełne środowisko Anaconda i zatrzymanie błędu SSL.

Jaka jest różnica między wierszem polecenia a monitem Anaconda? Zobacz tę odpowiedź SO, aby dowiedzieć się, jaka jest różnica między wierszem polecenia a monitem anaconda .

powiedz
źródło
1

Po spędzeniu kilku godzin na przeglądaniu dokumentacji Anacondy, wystawianiu biletów na Github i tak dalej, w końcu udało mi się uruchomić go na 64-bitowym systemie Windows 10 (Anaconda 3.7). Udało mi się zainstalować plik binarny Win64 OpenSSL v1.1.1d z https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe .

UWAGA : Wersja wydaje się mieć znaczenie! Wypróbowałem wersję 1.1.0L (jak sugerowano w innych komentarzach i odpowiedziach), ale w tej wersji problem nie ustąpił. Jeśli po zainstalowaniu niektórych bibliotek OpenSSL nadal masz problemy, próbuj, aż znajdziesz odpowiednią wersję. Wydaje się, że w przypadku Anacondy 3.7 na Windows 10 właściwy jest 1.1.1d. Nie próbowałem wersji light.

Rzeczy, które nie działały dla mnie:

Pablo R. Mier
źródło
1

Napotkano ten sam błąd SSL podczas wykonywania instalacji pip po nowej instalacji anacondy. Pomogło aktywowanie środowiska podstawowego przed wykonaniem instalacji pip. Wykonaj activate basepolecenie od cmd, a następnie uruchom skrypt w Pythonie. Możesz także wypróbować 'conda run -n base python script.py'Reference - https://github.com/conda/conda/issues/8487

msr
źródło
1

Miałem to samo na mojej instalacji systemu Windows 10.

Anaconda3 nie otwierała Anaconda Navigator przed skopiowaniem libcrypto-1_1-x64.dll and libssl-1_1-x64.dllzAnaconda3\Library\bin to \Anaconda3\DLL .

Raz zrobiłem tę pipinstalację w środowisku podstawowym działało dobrze, ale nie w innym środowisku, które stworzyłem. Musiałem zrobić to samo, co powyżej w nowym środowisku.

Oznacza to, że kopiowanie libcrypto-1_1-x64.dll and libssl-1_1-x64.dllod \<env folder>\Library\bindo \<env folder>\DLLwtedy działało dobrze.

CypherCrypt
źródło
1

Po rozwiązaniu tego samego problemu w systemie Windows 10 rozwiązanie jest dość proste:

  1. Otwórz monit Anaconda
  2. Biegać conda init
  3. Zamknij i ponownie otwórz wszystkie otwarte interpretery Pythona (PyCharm, Anaconda Prompt, cmd itp.), W których chcesz uruchomić kod

Uruchom kod ponownie i powinien działać. Zaktualizowałem zarówno Anacondę, jak i PyCharm i miałem problem ze wszystkimi kombinacjami wersji, dopóki nie uruchomiłem conda init, co dodaje do twojej PATH podobnie jak odpowiedź Paula Stevensa . Nie pomijaj punktu 3 - ponowne uruchomienie PyCharm lub jakiegokolwiek innego interpretera jest kluczowe.

kevinmicke
źródło
0

przechodzenie do witryny internetowej: daje mi następujące informacje z narzędzia programisty i przeglądanie nagłówków. (kliknij prawym przyciskiem myszy -> sprawdź. następnie otwórz kartę sieci i sprawdź nagłówki)

  • URL żądania: http://www.msft.com/
  • Metoda żądania: POBIERZ
  • Kod stanu: 200 OK
  • Adres zdalny: 205.178.189.130:80
  • Polityka odsyłająca: no-referrer-when-downgrade

Widzimy więc, że musimy wykonać żądanie do HTTP, a nie HTTPS.

import requests


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

if __name__ == '__main__':
    Earlybird()
NemoMeMeliorEst
źródło
0

Uwaga: ten problem został rozwiązany w systemie Windows 10. Napotkałem ten sam problem ze środowiskiem wirtualnym w systemie Windows 10. Problem został rozwiązany z uruchomieniem CMD jako administrator i utworzeniem nowego środowiska wirtualnego.

  • Uruchom cmd jako administrator
  • utwórz środowisko wirtualne (virtualenv .venv)
  • aktywuj środowisko wirtualne .venv \ Scripts \ activ
  • Żądania instalacji pip
Vikas Sharma
źródło
0

Rozwiązany, wykonując następujące czynności w moim systemie Windows 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"
Hassan
źródło
0

Używam VSCode do edycji i debugowania, a jedynym rozwiązaniem, które zadziałało, była edycja zmiennych środowiskowych w oknach. Najwyraźniej powoduje to problemy, ale nie jestem pewien, czym one są.

Uruchamianie z zachęty Anaconda (jak sugeruje sayth) NIE było dla mnie opcją. A może sugestia była taka, aby w jakiś sposób uruchomić znak zachęty anakondy, a z zachęty anakondy uruchomić VSCode. To nie brzmi jak rozsądna prośba.

Wydaje się, że jest to długotrwały, chroniczny problem bez ostatecznej globalnej odpowiedzi, która działa dla wszystkich.

user2556468
źródło
0

Ten błąd występuje w VSCode z Pythonem 3.7.3, ale działa dobrze w edytorze IDLE w Windows 10 z Pythonem 3.7.0.

ebeb
źródło
0

Upewnij się, że tworzysz projekt z wybraną opcją środowiska Conda.

Mój problem został rozwiązany przez ponowne utworzenie projektu i wybranie opcji „conda” z opcji „Nowe środowisko przy użyciu”

zobacz zdjęcie:

Nowe ustawienie środowiska

y. bs
źródło
0

W systemie Windows 10 - jest to obejście i nie rozwiązuje problemu z rootem, jeśli jednak musisz tylko coś zainstalować i przejść dalej; Wykonaj następujące czynności w wierszu polecenia, programie PowerShell lub pliku Dockerfile:

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

Lawrence Patrick
źródło
0

Miałem również ten sam problem w maszynach moich kolegów z zespołu. Naprawiono to samo z dodaniem ścieżki anakondy. W moim systemie poniżej jest ścieżka Anacondy:

C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\
C:\ProgramData\Anaconda3\Library\bin
Hitesh Tiwari
źródło