Comment fixer erreur "AttributeError: 'module' objet n'a pas d'attribut "client" python3?
Voici mon code.
import http
h1 = http.client.HTTPConnection('www.bing.com')
Je pense que c'est ok.Mais python me donner le message d'erreur suivant:
AttributeError: 'module' objet n'a pas d'attribut "client".
Je voulais savoir pourquoi et comment résoudre le problème.Merci.
fonctionne très bien pour moi à l'aide de Python 3.4...
OriginalL'auteur tianzhi0549 | 2014-08-13
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, l'importation d'un package de ne pas importer automatiquement tous ses submodules.*
Donc, essayez ceci:
Si cela ne fonctionne pas, il est alors probable que vous avez un fichier nommé
http.py
, ou dans un répertoire nomméhttp
, quelque part ailleurs sur votresys.path
(plus probablement le répertoire courant). Vous pouvez le vérifier assez facilement:Qui devrait donner un répertoire comme
/usr/lib/python3.3/http/__init__.py
ou/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/http/__init__.py
ou quelque chose qui ressemble évidemment du système-y et stdlib-y; si vous obtenez plutôt/home/me/src/myproject/http.py
, c'est votre problème. Le fixer en le renommant votre module afin de ne pas avoir le même nom qu'un stdlib module que vous souhaitez utiliser.Si ce n'est pas le problème, alors vous pouvez avoir un bris d'installation de Python, ou deux Python installations qui sont confus les uns des autres. La cause la plus commune de ce que l'installation de votre deuxième Python de la modification de votre
PYTHONPATH
variable d'environnement, mais votre première Python est toujours celui qui est exécuté lorsque vous tapez justepython
.* Mais parfois il le fait. Il dépend du module. Et parfois, vous ne pouvez pas dire si quelque chose est un package avec les non-membres du module (comme
http
), ou d'un module avec des submodules (os
). Heureusement, il n'a pas d'importance; c'est toujours enregistrer pourimport os.path
ouimport http.client
, s'il est nécessaire ou pas.OriginalL'auteur abarnert