1

我正在尝试运行 py 文件,但出现以下错误

IMPORT ERROR : NO MODULE NAMED "BASEHTTPSERVER"

py文件中包含的代码如下:

import BaseHTTPServer, SimpleHTTPServer
import ssl
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='server.pem', server_side=True)
httpd.serve_forever()

在此先感谢 最好的问候亚历杭德罗·卡斯坦

4

2 回答 2

1

回答 Python 3.x 如果您使用的是 Python3.x,请更改from BaseHTTPServerfrom http.server.

如果您为 Python 2.x 编写了此代码并使用 Python3.x 运行它,则2to3工具将在将您的源代码转换为 Python 3 时自动调整导入。

Python 2.x 的答案 该错误告诉您BaseHTTPServer需要在您的PYTHONPATH.

也就是说,Python 在BaseHTTPServer任何地方都找不到该模块,您要么需要安装它,要么如果它安装在非标准位置,请修改您的PYTHONPATH环境变量以包含它 - 但是这会有点奇怪(虽然并非不可能)情况,因为该模块通常包含在 Python2.x 中

于 2013-09-07T15:33:59.470 回答
1

如果您使用的是 Python 3.x,请尝试以下操作:

import http.server
import ssl

httpd = http.server.HTTPServer(('localhost', 4443), http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile='server.pem', server_side=True)
httpd.serve_forever()

BaseHTTPServer, SimpleHTTPServerPython 2 中的模块已合并到http.serverPython 3 中的模块中。

更新

顺便说一句,端口号似乎错误。HTTPS 端口是 443,而不是 4443。

于 2013-09-07T15:36:08.917 回答