2016-12-27 42 views
21

我想在Mac OS X 10.7.5下載NLTK 3.0使用與Python 3.6,但我得到一個SSL錯誤:SSL錯誤下載NLTK數據

import nltk 
nltk.download() 

enter image description here

我下載NLTK用pip3命令:sudo pip3 install -U nltk

更改在NLTK下載索引允許下載器顯示所有的NLTK的文件,但是當一個人試圖下載所有,可以得到其他SSL錯誤(見照片的底部):

enter image description here

我對計算機科學相對來說比較陌生,在SSL方面我一點都​​不懂。

我的問題是如何簡單地解決這個問題?


這裏是誰是有同樣的問題在用戶一個類似的問題:

Unable to download nltk data

我決定後用截圖了新的問題,因爲我的編輯到其他問題被拒絕。

這是我沒有找到有用的類似問題:

NLTK download SSL: Certificate verify failed

downloading error using nltk.download()

回答

41

你並不需要,如果你運行下面的終端命令禁用SSL檢查:

/Applications/Python 3.6/Install Certificates.command 

3.6的地方,把你的Python版本,如果它是一個較早的一個。那麼你應該能夠在你的翻譯中成功運行nltk.download()

這是一個問題,其中urllib使用不在系統證書存儲中的OpenSSL嵌入式版本。 Here's an answer提供更多關於發生了什麼的信息。

+1

上使用自制軟件(https://brew.sh)的軟件包管理器,就像一個魅力一樣。注意:在這一步之後仍然需要運行'nltk.download()'。 –

+0

這應該是被接受的答案。謝謝 – Dany

+1

@但我同意。更新了我的答案。 –

35

請通過@doctorBroctor看到答案。這是更正確和更安全的使用。下面的答案留下,因爲它可能對其他事情有用。

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


這將禁用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

只是一個人,panlex_lite非常大,所以它可能會凍結。檢查您的控制檯是否有錯誤。 –

+1

另外它有點bug,所以如果失敗,請嘗試單獨下載剩餘的軟件包。或從〜/ ntlk_data文件夾(zip +文件夾)中刪除失敗的文件並重試。 –

+0

這有效(除了panlex_lite,正如你所指出的那樣,它是一輛越野車)!無限的感謝。你能否簡單地解釋一下*爲什麼我得到這個錯誤以及你的代碼在做什麼?我想它繞過了某種SSL安全性,它阻止我訪問GitHub文件的位置? –