web-dev-qa-db-fra.com

Python 3.5.1 urllib n'a pas de demande d'attribut

J'ai essayé 

import urllib.request

ou 

import urllib

Le chemin pour mon urllib est /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/__init__.py

Je me demande où est urlopen ou mon module python pointe-t-il sur le mauvais fichier?

13
user1999806

Utilisez ceci:

import urllib.request

La raison est:

Avec des packages comme celui-ci, vous devez parfois importer explicitement le fichier pièce que vous voulez. De cette façon, le module urllib ne doit pas être chargé tout simplement parce que tu voulais une petite partie.

Selon this

25
Swordsman

En python 3.6.x cela a fonctionné pour moi, de cette façon, je n'ai pas eu à changer le code du tout:

import urllib.request as urllib
3
MPękalski

Si rien de ce qui précède n'a fonctionné pour vous, essayez de renommer votre module python.

Dans mon cas particulier, le problème était que le fichier que j'exécutais s'appelait http.py. Une fois que j'ai changé le nom en test-http.py, l'importation d'urllib.request a résolu l'erreur AttributeError: module 'urllib' has no attribute 'request'.

J'avais remarqué que plus loin dans la trace de l'exception, les paquets internes essayaient de récupérer un module appelé http.

0
JohnnyFun