0

我尝试从python wiki运行第一个示例,当我尝试运行它时:

$ python BaseHttpServer.py

我收到一个错误AttributeError: 'module' object has no attribute 'BaseHTTPRequestHandler'

我在 Linux Mageia 2 64 位的 Python 2.7.3 上对其进行了测试:

Traceback (most recent call last):
  File "BaseHTTPServer.py", line 9, in <module>
    import BaseHTTPServer
  File "/home/vanveber/BaseHttpServer/BaseHTTPServer.py", line 14, in <module>
    class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
AttributeError: 'module' object has no attribute 'BaseHTTPRequestHandler'

它在 Windows 7 64 位上的 Python 2.7.3 上

Traceback (most recent call last):
  File "BaseHTTPServer.py", line 11, in <module>
    from BaseHTTPServer import BaseHTTPRequestHandler
  File "C:\BaseHttpServer\BaseHTTPServer.py", line 11, in <module>
    from BaseHTTPServer import BaseHTTPRequestHandler
ImportError: cannot import name BaseHTTPRequestHandler

但!

  1. BaseHttpServer 是标准 Python 库中的一个类。
  2. 如果我在 Windows 上从 Python GUI 编写并运行此代码,它可以正常工作!

什么是问题,为什么?

4

1 回答 1

3

解决方案:重命名python文件。

说明: BaseHTTPServer 是标准库中的一个模块。当你的本地目录中有一个名为 BaseHTTPServer.py 的 python 文件时,你会隐藏标准库模块,并且你不能再导入它,因为语句

import BaseHTTPServer

不会导入标准库模块,而是本地 BaseHTTPServer.py 模块。

于 2012-11-30T10:50:54.810 回答