È necessario installare urllib2 per Python 3.5.1


100

Uso Python 3.5.1 per Mac. Voglio usare urllib2module. Ho provato a installarlo ma mi è stato detto che è stato suddiviso in urllib.requeste urllib.errorper Python 3.

Il mio comando (in esecuzione dalla directory bin del framework per ora perché non è nel mio percorso):

sudo ./pip3 install urllib.request

Restituisce questo:

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

Ho ricevuto lo stesso errore prima quando ho provato a installare urllib2in un colpo solo.


2
Non puoi semplicemente importare urllib.requestnel tuo programma Python?
michaelpri

3
urllib.request fa parte della libreria standard e non necessita di installazione.
Daniel Roseman


urllib fa parte della libreria std ma contiene solo il pacchetto di analisi in quella, non sono riuscito a trovare la richiesta in quella ....
Devendra Bhat

Risposte:


169

ATTENZIONE : le ricerche sulla sicurezza hanno trovato diversi pacchetti avvelenati su PyPI , incluso un pacchetto denominatourllib, che " telefonerà a casa" una volta installato. Se hai utilizzato un pip install urllibpo 'di tempo dopo giugno 2017, rimuovi quel pacchetto il prima possibile .

Non puoi e non ne hai bisogno.

urllib2è il nome della libreria inclusa in Python 2. Puoi invece usare la urllib.requestlibreria inclusa in Python 3. La urllib.requestlibreria funziona allo stesso modo urllib2in Python 2. Poiché è già inclusa , non è necessario installarla.

Se stai seguendo un tutorial che ti dice di usare urllib2, scoprirai che ti imbatterai in più problemi. Il tuo tutorial è stato scritto per Python 2, non per Python 3. Trova un altro tutorial o installa Python 2.7 e continua il tuo tutorial su quella versione. Troverai che urllib2viene fornito con quella versione.

In alternativa, installa la requestslibreria per un'API di livello superiore e più facile da usare. Funzionerà sia su Python 2 che su 3.


24
Grazie, allora potrei usare:import urllib.request as urllib2
MewX

quindi pip non è moderato contro il malware?
igor

3
@igor: pipè uno strumento a riga di comando che può scoprire e caricare pacchetti da qualsiasi luogo. PyPI.org, l'indice del pacchetto predefinito pipandrà a, non è moderato. La Python Software Foundation è un'organizzazione gestita da volontari e non può nemmeno iniziare a moderare la quantità di codice coinvolta.
Martijn Pieters

Grazie per l'avviso
B Furtado

28

Secondo i documenti :

Nota Il modulo urllib2 è stato suddiviso in diversi moduli in Python 3 denominati urllib.requeste urllib.error. Lo strumento 2to3 adatterà automaticamente le importazioni durante la conversione dei sorgenti in Python 3.

Quindi sembra che sia impossibile fare quello che vuoi ma puoi usare le funzioni python3 appropriate da urllib.request.


6

In Python 3, è urllib2stato sostituito da due moduli integrati denominati urllib.requesteurllib.error

Adattato dalla fonte


Quindi sostituisci questo:

import urllib2

Con questo:

import urllib.request as urllib2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.