我试图在我的机器上设置http服务器,但我得到了错误:
ModuleNotFoundError: No module named 'http.server'; 'http' is not a package
我的项目目录中有两个文件:http.py
和index.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
这让我很失望,因为我甚至没有运行文件。我提到这一点是为了防止有任何迹象表明某些本地配置可能是所有问题的根源。
您已将文件命名为http.py
。这将覆盖标准库http模块。解决方法:
- 您必须将文件
http.py
重命名为其他文件 -
删除项目中的
.pyc
文件find . -name "*.pyc" -delete
-
再次运行程序。
您可能会感兴趣地阅读Python中的模块和包是如何工作的。