web-dev-qa-db-fra.com

Besoin d'installer urllib2 pour Python 3.5.1

J'utilise Python 3.5.1 pour Mac. Je veux utiliser urllib2. J'ai essayé d'installer cela, mais on m'a dit qu'il avait été divisé en urllib.request et urllib.error pour Python 3.

Ma commande (s'exécutant depuis le répertoire bin du framework pour l'instant car ce n'est pas dans mon chemin):

Sudo ./pip3 install urllib.request

Résultats:

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

J'ai eu la même erreur avant quand j'ai essayé d'installer urllib2 en un seul coup.

76
Eamonn Gormley

WARNING: des recherches sur la sécurité ont révélé plusieurs paquets empoisonnés sur PyPI , y compris un paquet nommé urllib, qui "téléphonera à la maison" une fois installé. Si vous avez utilisé pip install urllib quelque temps après juin 2017, supprimez ce paquet dès que possible .

Vous ne pouvez pas, et vous n'avez pas besoin de.

urllib2 est le nom de la bibliothèque incluse dans Python 2. Vous pouvez utiliser la urllib.request bibliothèque incluse avec Python 3, au lieu. La bibliothèque urllib.request fonctionne de la même manière que urllib2 fonctionne dans Python 2. Parce qu'elle est déjà incluse , vous n'avez pas besoin de Installez-le.

Si vous suivez un didacticiel vous invitant à utiliser urllib2, vous rencontrerez davantage de problèmes. Votre tutoriel a été écrit pour Python 2, pas Python 3. Trouvez un autre tutoriel ou installez Python 2.7 et continuez votre tutoriel avec cette version. Vous trouverez urllib2 livré avec cette version.

Vous pouvez également installer la bibliothèque requests pour une API de niveau supérieur et plus facile à utiliser. Cela fonctionnera sur Python 2 et 3.

133
Martijn Pieters

Selon docs :

Remarque . Le module urllib2 a été divisé en plusieurs modules dans Python 3 nommés urllib.request et urllib.error. L'outil 2to3 adaptera automatiquement les importations lors de la conversion de vos sources en Python 3.

Il semble donc qu'il soit impossible de faire exactement ce que vous voulez, mais vous pouvez utiliser les fonctions python3 appropriées à partir de urllib.request.

23
Ilya V. Schurov

Au début de votre script python, procédez comme suit:

import urllib2

après cela, vous pouvez continuer avec un exemple gratuit comme suit:

response = urllib2.urlopen('http://pythonforbeginners.com/')
print response.info()
html = response.read()
response.close()  # best practice to close the file

ou vous procédez après 'import urllib2' avec cet exemple gratuit comme suit:

page = urllib2.urlopen('http://0.0.0.0')
print page.info()
0
dschinn1001