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.


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.


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.