找不到模块属性,即使它存在

时间:2013-05-31 14:19:53

标签: python python-3.x

我内置的http模块有一个非常奇怪的python问题。它成功导入,但http.client属性不存在? 它存在于python文档中,我兄弟完美地运行代码。它对我来说不起作用,无论是在我的linux笔记本电脑还是我的Mac上! 已经有几天这个问题了,真的需要修复它!

确切的错误消息是:

except (http.client.ResponseNotReady, http.client.CannotSendRequest, http.client.BadStatusLine) as e:
AttributeError: 'module' object has no attribute 'client'

删除此异常时,此文件中只有更多异常,所以我不能简单地删除该异常

因为我找不到这个问题的根源,所以我开始探测http模块文件夹并找到client.py

在python解释器中输入help(http)时,它会响应:

PACKAGE CONTENTS
    client
    cookiejar
    cookies
    server

FILE
    /opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/http/__init__.py

嗯,我知道自动生成帮助命令信息,这些软件包可能已被删除或其他内容。所以我去了http目录并做了一个“ls -l”给我这个:

-rw-r--r--   1 root  wheel     38  6 Apr 21:29 __init__.py
drwxr-xr-x  12 root  wheel    408  4 May 21:29 __pycache__
-rw-r--r--   1 root  wheel  44644  6 Apr 21:29 client.py
-rw-r--r--   1 root  wheel  75973  6 Apr 21:29 cookiejar.py
-rw-r--r--   1 root  wheel  20360  6 Apr 21:29 cookies.py
-rw-r--r--   1 root  wheel  44788  6 Apr 21:29 server.py

我一直在寻找client.py!它甚至有很多代码,所以不能访问它?

也不可能只是尝试在python解释器中访问它!

>>> import http
>>> http.client
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'client'

提前致谢!

1 个答案:

答案 0 :(得分:5)

您导入了http。但是你也导入了http.client吗?

这是必要的,因为它取决于包的__init__.py是否导入了子模块。