python - Error de SSL al descargar datos NLTK
macos ssl-certificate (4)
Estoy tratando de descargar NLTK 3.0 para usar con Python 3.6 en Mac OS X 10.7.5, pero recibo un error SSL:
import nltk
nltk.download()
Descargué NLTK con un comando pip3:
sudo pip3 install -U nltk
.
Cambiar el índice en el descargador de NLTK permite que el descargador muestre todos los archivos de NLTK, pero cuando uno intenta descargar todos, obtiene otro error SSL (vea la parte inferior de la foto):
Soy relativamente nuevo en informática y no soy nada inteligente con respecto a SSL.
Mi pregunta es cómo simplemente resolver este problema.
Aquí hay una pregunta similar de un usuario que tiene el mismo problema:
No se pueden descargar datos nltk
Decidí publicar una nueva pregunta con capturas de pantalla, ya que mi edición de esa otra pregunta fue rechazada.
Preguntas similares que no encontré útiles:
SSL de descarga de NLTK: error de verificación del certificado
En Finder, busque
Python 3.6
.
Aparecerá en la carpeta de la aplicación.
Expande la carpeta
Python 3.6
.
Luego instale los certificados usando
"Instalar certificados.command"
.
No necesita deshabilitar la comprobación SSL si ejecuta el siguiente comando de terminal:
/Applications/Python 3.6/Install Certificates.command
En lugar de
3.6
, coloque su versión de Python si es anterior.
Entonces debería poder abrir su intérprete de Python (usando el comando
python3
) y ejecutar con éxito
nltk.download()
allí.
Este es un problema en el que
urllib
usa una versión incrustada de OpenSSL que no está en el almacén de certificados del sistema.
Aquí hay una respuesta
con más información sobre lo que está sucediendo.
Para instalar en codestar, la única forma es descargar manualmente los módulos y guardarlos en la carpeta nltk_data, crear un entorno variable lambda NLTK_DATA con valie ./nltk_data.
Por favor, vea la respuesta de @doctorBroctor. Es más correcto y seguro de usar. Dejando la respuesta a continuación, ya que podría ser útil para otra cosa.
https://.com/a/42890688/1167890
Esto funcionará deshabilitando la comprobación 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()