我正在尝试运行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()
提前致谢 最好的祝福 亚历杭德罗·卡斯坦
答案 0 :(得分:1)
回答Python 3.x
如果您使用的是Python3.x,请将from BaseHTTPServer
更改为from http.server
。
如果您为Python 2.x编写了此代码并且使用Python3.x运行它,2to3工具会在将源代码转换为Python 3时自动调整导入。
回答Python 2.x
该错误告诉您BaseHTTPServer
需要PYTHONPATH
。
也就是说,Python无法在任何地方找到模块BaseHTTPServer
,您需要安装它,或者如果它安装在非标准位置,请修改您的PYTHONPATH
环境变量以包含它 - 但这有点奇怪(虽然不是不可能)的情况,因为该模块通常包含在Python2.x中
答案 1 :(得分: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()
Python 2中的 BaseHTTPServer
,SimpleHTTPServer
模块已合并到Python 3中的http.server
模块中。
<强>更新强>
BTW,端口号似乎不对。 HTTPS端口是443,而不是4443。