How To Fix Error "attributeerror: 'module' Object Has No Attribute 'client' In Python3?
Solution 1:
First, importing a package doesn't automatically import all of its submodules.*
So try this:
import http.client
If that doesn't work, then most likely you've got a file named http.py
, or a directory named http
, somewhere else on your sys.path
(most likely the current directory). You can check that pretty easily:
import http
http.__file__
That should give some directory like /usr/lib/python3.3/http/__init__.py
or /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/http/__init__.py
or something else that looks obviously system-y and stdlib-y; if you instead get /home/me/src/myproject/http.py
, this is your problem. Fix it by renaming your module so it doesn't have the same name as a stdlib module you want to use.
If that's not the problem, then you may have a broken Python installation, or two Python installations that are confusing each other. The most common cause of this is that installing your second Python edited your PYTHONPATH
environment variable, but your first Python is still the one that gets run when you just type python
.
* But sometimes it does. It depends on the module. And sometimes you can't tell whether something is a package with non-module members (like http
), or a module with submodules (os
). Fortunately, it doesn't matter; it's always save to import os.path
or import http.client
, whether it's necessary or not.
Post a Comment for "How To Fix Error "attributeerror: 'module' Object Has No Attribute 'client' In Python3?"