ModuleNotFoundError:没有名为“ http.server”的模块; “ http”不是软件包

时间:2020-04-28 18:54:30

标签: python http server simplehttprequesthandler

我正在尝试在计算机上设置http服务器,但出现错误:

ModuleNotFoundError: No module named 'http.server'; 'http' is not a package

我的项目目录中有2个文件:http.pyindex.html

这里是http.py

import http.server
import socketserver

PORT = 8080
Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

我已经尝试将模块更改为BaseHTTPServer,但出现此错误:

ModuleNotFoundError: No module named 'BaseHTTPServer'

我还注意到我的终端上发生了一件奇怪的事情。如果我尝试做

python3 -m pip uninstall <module>

我收到诸如

之类的错误
ModuleNotFoundError: No module named 'http.server'; 'http' is not a package

这让我失望,因为我什至没有运行文件。我提到这一点是为了表明某些本地配置可能是所有人的问题。

1 个答案:

答案 0 :(得分:2)

您已将文件命名为http.py。这将覆盖标准库http模块。解决:

  • 您必须将文件http.py重命名为其他名称。
  • 删除项目中的.pyc个文件

    find . -name "*.pyc" -delete

  • 再次运行程序。

您可能有兴趣阅读modules and packages在Python中的工作方式。