2

我正在尝试在我的机器上设置 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

这让我很失望,因为我什至没有运行该文件。我提到这一点,以防有任何迹象表明某些本地配置可能是所有问题。

4

1 回答 1

12

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

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

    find . -name "*.pyc" -delete

  • 再次运行程序。

您可能会对阅读Python 中的模块和包如何工作感兴趣。

于 2020-04-29T05:00:02.153 回答