2016-12-27 66 views
21

Próbuję pobrać NLTK 3.0 do użycia z Python 3.6 na Mac OS X 10.7.5, ale otrzymuję błąd SSL:błąd SSL pobierania danych NLTK

import nltk 
nltk.download() 

enter image description here

ściągnięty NLTK za pomocą polecenia pip3: sudo pip3 install -U nltk.

Zmiana indeksu w downloader NLTK pozwala downloader, aby zobaczyć wszystkie pliki NLTK, ale gdy ktoś próbuje ściągnąć wszystko, dostaje kolejny błąd SSL (patrz spód Photo):

enter image description here

Jestem stosunkowo młodym człowiekiem w dziedzinie informatyki i nie jestem w pełni zaznajomiony z SSL.

Moje pytanie brzmi: jak rozwiązać ten problem?


Oto podobne pytanie przez użytkownika, który jest ten sam problem:

Unable to download nltk data

postanowiłem pisać nowe pytanie z ekranu, ponieważ moja edycja tej drugiej kwestii została odrzucona .

podobne pytania, na które nie mogę znaleźć pomocne:

NLTK download SSL: Certificate verify failed

downloading error using nltk.download()

Odpowiedz

41

Nie trzeba wyłączyć sprawdzanie SSL jeśli uruchomić następujące polecenie terminala:

/Applications/Python 3.6/Install Certificates.command 

W miejscu 3.6, umieścić swoją wersję Pythona, jeśli jest to wcześniej. Wtedy powinieneś być w stanie skutecznie uruchomić nltk.download() w swoim tłumaczu.

Jest to problem, w którym urllib używa wbudowanej wersji OpenSSL, która nie znajduje się w magazynie certyfikatów systemu. Here's an answer z dodatkowymi informacjami na temat tego, co się dzieje.

+1

działa jak czar. uwaga: nadal trzeba uruchomić 'nltk.download()' po tym kroku. –

+0

To powinna być zaakceptowana odpowiedź. Dziękuję – Dany

+1

@Dany Zgadzam się. Zaktualizowałem moją odpowiedź. –

35

Proszę zobaczyć odpowiedź przez @doctorBroctor. Jest bardziej poprawny i bezpieczniejszy w użyciu. Pozostawiając odpowiedź poniżej, ponieważ może być przydatna dla czegoś innego.

https://stackoverflow.com/a/42890688/1167890


To będzie działać poprzez wyłączenie sprawdzania SSL.

import nltk 
import ssl 

try: 
    _create_unverified_https_context = ssl._create_unverified_context 
except AttributeError: 
    pass 
else: 
    ssl._create_default_https_context = _create_unverified_https_context 

nltk.download() 
+1

Po prostu heads up, panlex_lite jest dość duży, więc może wydawać się zamrożony. Sprawdź konsolę pod kątem błędów. –

+1

Również jest trochę błędny, więc jeśli się nie uda, spróbuj pobrać pozostałe pakiety indywidualnie. Lub usunięcie nieudanego z folderu ~/ntlk_data (zip + folder) i ponowienie. –

+0

To działało (z wyjątkiem panlex_lite, który, jak sam wskazywałeś, jest błędny)! Nieskończone dzięki. Czy mógłbyś krótko wyjaśnić, dlaczego dostaję błąd i co robi twój kod?Wydaje mi się, że omija niektóre zabezpieczenia SSL, które uniemożliwiały mi dostęp do lokalizacji plików GitHub? –