以下是我的代码。
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
或/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 python
。
*但有时确实如此。这取决于模块。有时您无法分辨某个东西是包含非模块成员的包(例如http
)还是包含子模块的模块(os
)。幸运的是,这并不重要。它总是保存到import os.path
或import http.client
,无论是否需要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句