我正试图在ubuntu上测试这个'hello world'的python(有龙卷风):
import tornado.ioloop
import tornado.web
import tornado.httpserver
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
httpserver.stop()
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
运行此Web应用程序的命令行:
python hello.py
但是我只能运行一次'hello.py'。现在我正在更改代码并希望再次运行'hello.py'。我认为我需要停止先前运行的'hello.py'实例,因为它正在接收端口8888.但是我不知道如何做到这一点。
我尝试“导入tornado.httpserver”以使用函数“httpserver.stop()”但是python在终端报告:
Traceback (most recent call last):
File "hello.py", line 14, in <module>
httpserver.stop()
NameError: name 'httpserver' is not defined
我也尝试“HTTPServer.stop()”,但它也给出了相同的错误!!!
答案 0 :(得分:3)
如果你的终端没有连接,你可以杀死pid,如果它是Ctrl + c。
答案 1 :(得分:3)
一个。 Importing in python与java \ C#不同。要导入指定的术语,您应该编写类似
的内容 from tornado import ioloop,web,httpserver
或使用导入的项目(即使用tornado.
前缀)
B中。当您calling ioloop.IOLoop.instance().start()
时,此函数将一直运行,直到它捕获异常,进程关闭或其中一个已注册的句柄调用ioloop.IOLoop.instance().stop()
。当更改任何导入模块的代码时,它也可以重新启动。