Sto eseguendo Python 3.5.1 per Mac. Voglio usare urllib2. Ho provato ad installarlo ma mi è stato detto che è stato diviso in urllib.request e urllib.error per 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:
Could not find a version that satisfies the requirement urllib.request (from versions: )
No matching distribution found for urllib.request
Ho avuto lo stesso errore prima quando ho cercato di installare urllib2 in un colpo solo.
WARNING: Ricerche sulla sicurezza hanno trovato diversi pacchetti avvelenati su PyPI, incluso un pacchetto chiamato urllib
, che 'phone home' quando installato. Se avete usato pip install urllib
qualche tempo dopo giugno 2017, rimuovete quel pacchetto al più presto possibile.
Non puoi e non devi farlo.
urllib2
è il nome della libreria inclusa in Python 2. Potete invece usare la libreria urllib.request
(https://docs.python.org/3/library/urllib.request.html#module-urllib.request) inclusa in Python 3. La libreria urllib.request
funziona allo stesso modo di urllib2
in Python 2. Poiché è già inclusa non è necessario installarla.
Se stai seguendo un tutorial che ti dice di usare urllib2
, allora troverai altri 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 urllib2
viene fornito con quella versione.
In alternativa, installate la libreria [requests
(https://pypi.python.org/pypi/requests) per un'API di livello superiore e più facile da usare. Funzionerà sia su Python 2 che 3.
Come da docs:
Nota. Il modulo urllib2 è stato diviso in diversi moduli in Python 3 chiamati urllib.request e urllib.error. Lo strumento 2to3 adatterà automaticamente le importazioni durante la conversione dei tuoi sorgenti in Python 3.
Quindi sembra che sia impossibile fare esattamente quello che vuoi, ma puoi usare le funzioni python3 appropriate da urllib.request
.
All'inizio del tuo script python dovrebbe essere il seguente:
import urllib2
dopo questo puoi procedere con un esempio libero come il seguente:
response = urllib2.urlopen('http://pythonforbeginners.com/')
print response.info()
html = response.read()
response.close() # best practice to close the file
oppure si procede dopo 'import urllib2' con questo esempio libero come segue:
page = urllib2.urlopen('http://0.0.0.0')
print page.info()