2016-08-02 196 views
6
import nltk 
nltk.download() 

它顯示[SSL:CERTIFICATE_VERIFY_FAILED]。在requests的情況下,可以使用verify=False,但這裏要做什麼。無法下載nltk數據

UPDATE:關於Python 3.6

此錯誤仍存在,與NLTK 3.0,在Mac OS X 10.7.5:

enter image description here

在NLTK下載更改索引(建議here)允許下載器顯示所有NLTK的文件,但是當您嘗試下載所有文件時,會出現另一個SSL錯誤(請參閱底部的照片):

enter image description here

+0

您確定您使用的是最新版本的nltk,也許嘗試nltk.download('all') – SAMO

+2

不是沒有工作 –

+0

http://stackoverflow.com/a/37053858/1168680 – RAVI

回答

0

好的,這有點破解,但這是我必須做的,才能夠在我的Mac筆記本電腦上運行Python 3.x中的各種NLTK數據文件(運行macOS 10.12.2)。

首先,請注意,證書錯誤只發生在我使用Python 3.x在我的Mac上下載NLTK數據時(我使用Python 3.x時,VirtualBox內的Ubuntu VM沒有這樣的錯誤 - 這很煩人) 。爲什麼這會導致我Mac上的錯誤超出我的意料之外,尤其是當NLTK模塊使用pip安裝到Python 3.x中時,沒有任何問題。這是連接到NLTK的下載服務器,似乎導致SSL驗證問題。

我的'啊哈!'當我意識到NLTK(當安裝到Python 3.x或Python 2.x中)在任何計算機上安裝的所有Python版本之間共享相同的目錄結構時,我就開始了。因此,我使用預裝在macOS上的Python 2.x來安裝NLTK,然後在Python 2.x中使用nltk.download()來安裝沒有問題的停用詞語集。這樣做之後(在Python 2.x的),我就回成Python 3.x和這個代碼工作:

import nltk 
from nltk.corpus import stopwords 
print(stopwords.words('english')) 

正如我所說,這是一個黑客攻擊的一位,但這種技術可以讓我得到使用Python 2.x安裝的NLTK數據,我可以根據需要使用Python 3.x進行處理。

0

(添加「證書驗證失敗_ssl.c:749」。對於這個問題的SEO)

使用下載的保羅·巴里的尖端通過Python 2.7(我可以解決我在Mac上,10.12.2」牛逼的評論,因爲遇到了和固定代表< 50)

其他問題: 爲了能夠通過Python 2.7(默認的Mac的Python 2.7安裝程序)下載NLTK我也不得不Python的文件夾添加到/.bash_profile如this comment所示。

然後,因爲我已經爲2.7設置了這個路徑變量,所以一旦語料庫被下載以便能夠啓動python3,我不得不刪除它。所以在啓動python3之前,先將它從/.bash_profile中移除。

畢竟,我可以運行「導入nltk」和「從nltk.book導入*」沒有問題。

7

我在嘗試配置nltk和SpaCy時遇到同樣的問題。根據this question中的說明,我能夠解決這個問題。嘗試運行/Applications/Python\ 3.6/Install\ Certificates.command,然後重試NLTK下載

1

在MacOS 10.12.6這是由在Bash終端輸入以下解決

pip install certifi 
/Applications/Python\ 3.6/Install\ Certificates.command 

安裝NLTK全集那麼通常的方法爲我工作

import nltk 
nltk.download()