如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’?

2024-06-21

以下是我的代码。

import http
h1 = http.client.HTTPConnection('www.bing.com')

我认为没问题。但是 python 给了我以下错误:

AttributeError:“模块”对象没有属性“客户端”。

我想知道为什么以及如何解决它。谢谢。


首先,导入包不会自动导入其所有子模块。*

所以试试这个:

import http.client

如果这不起作用,那么很可能您有一个名为http.py,或名为的目录http,在你的其他地方sys.path(很可能是当前目录)。你可以很容易地检查一下:

import http
http.__file__

那应该给出一些目录,例如/usr/lib/python3.3/http/__init__.py or /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/http/__init__.py或者其他看起来明显是 system-y 和 stdlib-y 的东西;如果你得到/home/me/src/myproject/http.py, 这是你的问题。通过重命名模块来修复它,使其与您要使用的 stdlib 模块不具有相同的名称。


如果这不是问题,那么您可能有一个损坏的 Python 安装,或者两个互相混淆的 Python 安装。最常见的原因是安装第二个 Python 编辑了你的PYTHONPATH环境变量,但你的第一个 Python 仍然是你键入时运行的那个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.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修复错误“AttributeError:‘模块’对象在 python3 中没有属性‘客户端’? 的相关文章

随机推荐