【问题标题】:Python + Tornado Restart after editing filesPython + Tornado 编辑文件后重启
【发布时间】:2012-04-15 05:22:09
【问题描述】:

我刚开始为我的 Web 服务器学习 Python + Tornado。每次我在我的 python 脚本或模板上修改一些代码时,我都必须在我的终端 (CTRL+C) 中停止并重新启动它 (python server.py),我想要一种更有效的方法来做到这一点,即在修改代码之后一些文件服务器会自动重启。

以前我使用 NodeJS 并使用主管来执行此操作。

还有一种方法可以在 Google Chrome 中重新加载我的标签,这样我就可以在不重新加载的情况下看到更改 (F5)

目前我正在使用 Ubuntu 11.10 和 Sublime Text 2 并在 sublime 文本上使用 CTRL+B,但如果服务器已经在运行,则会生成错误,因为地址和端口正在使用中。无需更改端口即可解决此问题。

谢谢。

【问题讨论】:

    标签: python reload tornado restart


    【解决方案1】:

    如果您希望在开发过程中自动重新加载 .py 文件。在您的 tornado.web.Application() 中,将 debug=True 放在您的处理程序之后。

    我认为您不应该在生产环境中执行此操作,因为此类实现通常使用后台线程来主动扫描文件以查找更改,这可能会降低您的应用程序的速度。

    【讨论】:

    • 其实我相信 tornado 并没有为此使用单独的线程,而是在其 IOLoop 上注册处理程序。然而,它会产生开销。此外,调试消息不应该在生产中使用。
    • 现在可以只传入“autoreload=True”。这里有一个文档页面:tornadoweb.org/en/stable/autoreload.html
    【解决方案2】:

    你需要打开autoreload

    tornado.autoreload.start()
    tornado.autoreload.watch('myfile')
    

    https://gist.github.com/renaud/10356841的完整示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-26
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多