如何阻止龙卷风网络应用程序?

时间:2012-02-25 04:50:40

标签: python tornado

我正试图在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()”,但它也给出了相同的错误!!!

2 个答案:

答案 0 :(得分:3)

如果你的终端没有连接,你可以杀死pid,如果它是Ctrl + c。

相关链接:
http://groups.google.com/group/python-tornado/browse_thread/thread/87bc2451d79fa110/30665b2717397152?pli=1

答案 1 :(得分:3)

一个。 Importing in python与java \ C#不同。要导入指定的术语,您应该编写类似

的内容
   from tornado import ioloop,web,httpserver

或使用导入的项目(即使用tornado.前缀)

B中。当您calling ioloop.IOLoop.instance().start()时,此函数将一直运行,直到它捕获异常,进程关闭或其中一个已注册的句柄调用ioloop.IOLoop.instance().stop()。当更改任何导入模块的代码时,它也可以重新启动。