如何在服务器中更改和重新加载python代码而不重新启动服务器?

时间:2016-04-23 23:26:41

标签: python development-environment waitress

我正在使用女服务员来提供网络应用程序内容,例如。

waitress-serve --port=8000 myapp:application

在开发过程中,当我更改代码时,我不得不重新启动waitress-serve来查看我的更改。有没有一种标准方法可以实现自动化?

2 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但是我尝试使用Falcon框架为REST API启用热重装功能时遇到了类似的问题。

女服务员不监视文件更改,但是您可以在其顶部使用hupper。很简单:

$ pip install hupper
$ hupper -m waitress --port=8000 myapp:application

它也适用于Windows。

答案 1 :(得分:0)

根据@Dirk的评论,我发现提到的摘录中有the archive.org link。我可以直接使用Werkseug来重新加载女服务员。使用Werkzeug的装饰器run_with_reloader可使应用程序在Python文件更改时重新启动。 (在Flask中使用了Werkzeug,因此应该可用)。

此外,app.debug = True行使Flask在更改模板文件时重新加载它们。因此,您可能想同时考虑自己的具体情况。

import werkzeug.serving

@werkzeug.serving.run_with_reloader
def run_server():
    app.debug = True
    waitress.serve(app, listen='127.0.0.1:4432')

if __name__ == '__main__':
    run_server()

以这种方式设置服务器后,只要文件发生更改,它就会自动重新加载服务器。