我是Glass框架的新手我已经在我的ubuntu系统中安装了玻璃服务器,当我运行示例测试应用程序时返回_BaseServer__is_shut_down 错误我怎么能解决这个问题,我已经尝试了不同的端口号,但同样的问题。
test.py
#!/usr/bin/env python
from glass.HTTPServer import test
try:
print "Use Control-C to exit. In Windows, use Control-Break."
test()
except KeyboardInterrupt:
pass
当我运行此代码时出现错误,如
Serving HTTP on 0.0.0.0 port 8080 ...
Traceback (most recent call last):
File "HTTPServer.py", line 305, in <module>
test()
File "HTTPServer.py", line 300, in test
httpd.serve_forever()
File "/usr/lib/python2.7/SocketServer.py", line 223, in serve_forever
self.__is_shut_down.clear()
File "HTTPServer.py", line 265, in __getattr__
raise AttributeError(attr)
AttributeError: _BaseServer__is_shut_down
答案 0 :(得分:0)
我无法解决这个问题,但框架似乎很老了。我可以将您重新发送到最简单的HTTP服务器,也很容易:
Python 3(首选)使用http.server:
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(('', PORT), Handler)
print('serving at port', PORT)
httpd.serve_forever()
Python 2使用SimpleHTTPServer:
import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(('', PORT), Handler)
print 'serving at port', PORT
httpd.serve_forever()
答案 1 :(得分:0)
在框架代码中做了一些研究后,我发现了下一个:
包中的HTTPServer是一个自定义的,内置__getattr__
内置集,当一个属性不是&#34; is_secure&#34;被访问。
# Code from HTTPServer.py
def __getattr__(self, attr):
if attr == "is_secure":
return getattr(self.servertype.create_socket, "is_secure", False)
raise AttributeError(attr) # This is the buggy statement
因此,在普通的情况下,访问的任何HTTPServer属性(&#34; is_secure&#34;除外)都将无法解决异常。
我猜你有三个选择: