Necesita instalar urllib2 para Python 3.5.1

100

Estoy ejecutando Python 3.5.1 para Mac. Quiero usar urllib2module. Intenté instalarlo, pero me dijeron que se había dividido en urllib.requesty urllib.errorpara Python 3.

Mi comando (que se ejecuta desde el directorio bin del marco por ahora porque no está en mi ruta):

sudo ./pip3 install urllib.request

Devuelve esto:

Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request

Recibí el mismo error antes cuando intenté instalarlo urllib2de una sola vez.

Eamonn Gormley
fuente
2
¿No puedes simplemente importar urllib.requesten tu programa Python?
Michaelpri
3
urllib.request es parte de la biblioteca estándar y no necesita instalación.
Daniel Roseman
urllib es parte de la biblioteca estándar, pero solo contiene el paquete de análisis, no pude encontrar la solicitud en eso ....
Devendra Bhat

Respuestas:

169

ADVERTENCIA : Las investigaciones de seguridad han encontrado varios paquetes envenenados en PyPI , incluido un paquete llamadourllib, que "llamará a casa" cuando se instale. Si usó pip install urllibalgún tiempo después de junio de 2017, elimine ese paquete lo antes posible .

No puede y no es necesario.

urllib2es el nombre de la biblioteca incluida en Python 2. En su lugar, puede usar la urllib.requestbiblioteca incluida con Python 3. La urllib.requestbiblioteca funciona de la misma manera que urllib2en Python 2. Como ya está incluida , no es necesario instalarla.

Si está siguiendo un tutorial que le dice que use urllib2, encontrará que encontrará más problemas. Su tutorial fue escrito para Python 2, no para Python 3. Busque un tutorial diferente o instale Python 2.7 y continúe con su tutorial en esa versión. Encontrarás que urllib2viene con esa versión.

Como alternativa, instale la requestsbiblioteca para obtener una API de mayor nivel y más fácil de usar. Funcionará tanto en Python 2 como en 3.

Martijn Pieters
fuente
24
Gracias, entonces me vendría bien:import urllib.request as urllib2
MewX
entonces, ¿pip no está moderado contra malware?
igor
3
@igor: pipes una herramienta de línea de comandos que puede descubrir y cargar paquetes desde cualquier lugar. PyPI.org, el índice de paquetes predeterminado al pipque irá, no está moderado. La Python Software Foundation es una organización dirigida por voluntarios y ni siquiera puede comenzar a moderar la cantidad de código involucrado.
Martijn Pieters
Gracias por el aviso
B Furtado
28

Según los documentos :

Nota El módulo urllib2 se ha dividido en varios módulos en Python 3 llamados urllib.requesty urllib.error. La herramienta 2to3 adaptará automáticamente las importaciones al convertir sus fuentes a Python 3.

Entonces parece que es imposible hacer lo que quiere, pero puede usar las funciones apropiadas de python3 de urllib.request.

Ilya V. Schurov
fuente
6

En Python 3, urllib2fue reemplazado por dos módulos incorporados llamados urllib.requestyurllib.error

Adaptado de fuente


Así que reemplace esto:

import urllib2

Con este:

import urllib.request as urllib2
Aryan Beezadhur
fuente