tutorial requests how from examples beautifulsoup4 python python-2.7 beautifulsoup

python - requests - pip install bs4 dando el error_socketobject



how to use beautifulsoup4 (5)

Estoy tratando de instalar BeautifulSoup4 usando el comando pip install BeautifulSoup4 , según la documentación de bs aquí:

https://www.crummy.com/software/BeautifulSoup/#Download

Estoy usando Mac OS X 10.7.5 y Python 2.7.12

Cuando ejecuto el comando en la Terminal, obtengo el error:

AttributeError: ''_socketobject'' object has no attribute ''set_tlsext_host_name''

¿Alguien puede sugerir lo que estoy haciendo mal? Gracias por adelantado.

EDITAR: a la luz de los comentarios que he intentado ejecutar sudo pip install pyopenssl sin embargo, obtengo el mismo error ''socketobject''.


Por lo que entiendo, la versión del paquete pyopenssl instalada en todo el sistema no está actualizada . Actualizarlo:

sudo pip install --upgrade pyopenssl

O bien, quítelo e instale lo último en su entorno virtual:

$ sudo pip uninstall pyopenssl $ # activate virtual environment (myvirtualenv) $ pip install --upgrade pyopenssl


Alternativamente, puede instalar Anaconda Python desde: https://www.continuum.io/downloads

Esta instalación incluye BS fuera de la caja como la mayoría de las bibliotecas comunes que usará. Además, hace que la instalación de la biblioteca sea bastante fácil.


Estoy usando OS X 10.12 y python 2.7.10

sudo easy_install BeautifulSoup4 sudo easy_install pyopenssl

Todos trabajaron bien.


"Eso sucedió porque tu sistema operativo tiene una vieja biblioteca pyOpenSSL que no tiene un atributo de aceptación ''set_tlsext_host_name''. Para solucionar esto, necesitas agregar la dependencia pyOpenSSL> = 0.13.

$ brew purge python-openssl $ brew install libffi-dev $ brew install pyOpenSSL

Avíseme si esto no está claro o si no funciona para usted.


Ver https://.com/a/31576259/3579910 :

Tratar:

sudo apt-get purge python-openssl sudo apt-get install libffi-dev sudo pip install pyopenssl

Aparentemente no puedes votar por duplicado si hay una recompensa abierta.

Fondo:

Eso sucedió porque Ubuntu 12.04 (que es el sistema operativo de mi servidor) tiene una vieja biblioteca pyOpenSSL que no acepta el atributo ''set_tlsext_host_name''. Para solucionar eso, necesita agregar dependencia pyOpenSSL> = 0.13. En Ubuntu para actualizar pyOpenSSL use pip, también necesita instalar libffi-dev y eliminar python-openssl por apt.

Fuente

En Mac, puede obtener homebrew para reemplazar las llamadas apt-get: siga las instrucciones para instalar homebrew .