检查所有导入的 python 模块中的代码更改

问题描述 投票:0回答:2

几乎每个 Python Web 框架都有一个简单的服务器,它运行 wsgi 应用程序,并在每次源更改时自动重新加载导入的模块。我知道我可以查看代码并了解它是如何完成的,但这可能需要一些时间,我只是出于好奇才问。有谁知道这是如何实现的吗?

python
2个回答
2
投票

作为一种重新加载机制(werkzeug 中的机制)的作者,我可以告诉你它不起作用。所有重新加载器所做的就是分叉一次并在监视器线程注意到文件系统上的一个模块发生更改时重新启动子进程。

内联

reload()
ing 不起作用,因为对重新加载的模块的引用未更新。


1
投票

reload() 不起作用。 “重载”通常是通过fork来实现的。

实现“真正的”reload() 是极其困难的,即使是最认真的尝试,twisted.python.rebuild 也不是完美的。

© www.soinside.com 2019 - 2024. All rights reserved.