Besoin d'installer urllib2 pour Python 3.5.1

100

J'utilise Python 3.5.1 pour Mac. Je veux utiliser le urllib2module. J'ai essayé de l'installer mais on m'a dit qu'il avait été divisé en urllib.requestet urllib.errorpour Python 3.

Ma commande (exécutée à partir du répertoire bin du framework pour l'instant car ce n'est pas dans mon chemin):

sudo ./pip3 install urllib.request

Renvoie ceci:

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 urllib2d'un seul coup.

Eamonn Gormley
la source
2
Ne pouvez-vous pas simplement importer urllib.requestdans votre programme Python?
michaelpri
3
urllib.request fait partie de la bibliothèque standard et ne nécessite pas d'installation.
Daniel Roseman
urllib fait partie de la bibliothèque std mais il ne contient que le paquet parse, je n'ai pas pu trouver de requête dans ce ...
Devendra Bhat

Réponses:

169

AVERTISSEMENT : les recherches de sécurité ont trouvé 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 urllibdu temps après juin 2017, supprimez ce package dès que possible .

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

urllib2est le nom de la bibliothèque incluse dans Python 2. Vous pouvez utiliser la urllib.requestbibliothèque incluse avec Python 3, à la place. La urllib.requestbibliothèque fonctionne de la même manière que urllib2dans Python 2. Comme elle est déjà incluse, vous n'avez pas besoin de l'installer.

Si vous suivez un didacticiel qui vous indique d'utiliser, urllib2vous constaterez que vous rencontrerez plus de problèmes. Votre didacticiel a été écrit pour Python 2, pas pour Python 3. Trouvez un autre didacticiel ou installez Python 2.7 et poursuivez votre didacticiel sur cette version. Vous trouverez urllib2livré avec cette version.

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

Martijn Pieters
la source
24
Merci, alors je pourrais utiliser:import urllib.request as urllib2
MewX
donc pip n'est pas modéré contre les logiciels malveillants?
igor
3
@igor: pipest un outil en ligne de commande qui peut découvrir et charger des packages de n'importe où. PyPI.org, l'index du package par défaut pip, n'est pas modéré. La Python Software Foundation est une organisation gérée par des bénévoles et ne peut même pas commencer à modérer la quantité de code impliquée.
Martijn Pieters
Merci pour la tête
B Furtado
28

Selon la documentation :

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

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

Ilya V. Schurov
la source
6

Dans Python 3, a urllib2été remplacé par deux modules intégrés nommés urllib.requesteturllib.error

Adapté de la source


Alors remplacez ceci:

import urllib2

Avec ça:

import urllib.request as urllib2
Aryen Beezadhur
la source