Python Web2Py:不跟踪模块之间的更改

Python Web2Py:不跟踪模块之间的更改,python,module,web2py,Python,Module,Web2py,我有两个模块一起工作 例如,我有user.py和email.py。user.py具有验证注册表的功能,email.py具有发送确认电子邮件的功能。我在controller user.py和user.py import email.py中导入 与: 我在user.py中检测到更改,但在email.py中未检测到更改。我试图在user.py中加入track\u changes,但它不起作用 我是否可以在不重新启动服务器/web2py的情况下做些什么 Web2Py:2.16.1-stable+time

我有两个模块一起工作

例如,我有user.py和email.py。user.py具有验证注册表的功能,email.py具有发送确认电子邮件的功能。我在controller user.py和user.py import email.py中导入

与:

我在user.py中检测到更改,但在email.py中未检测到更改。我试图在user.py中加入
track\u changes
,但它不起作用

我是否可以在不重新启动服务器/web2py的情况下做些什么

Web2Py:2.16.1-stable+timestamp.2017.11.14.05.54.25(我尝试使用*.exe和*.py)

操作系统:Windows10Pro


谢谢

web2py使用自定义导入器,该导入器首先尝试通过标准Python内置方法导入模块,然后仅在内置方法失败时才查看应用程序的/modules文件夹。只有通过此自定义导入过程找到的模块才可跟踪

由于user.py已经导入,并且email.py与user.py位于同一文件夹中,因此Python内置导入方法在遇到user.py文件中的
import email
模块时,会在同一文件夹中查找
email
。因此,web2py自定义导入过程不会启动,因此不会跟踪该模块


我想这种行为可以改变,但现在,它就是这样工作的,所以不会跟踪您的第二次导入。

我在做了更改后,遇到了很多模块无法重新导入的问题<代码>跟踪更改从未对我起作用。最后,我将其添加到我的db.py文件中

import importlib
import sys
# Now import all your modules
import Common
importlib.reload(sys.modules['Common'])

这对我很有效。我知道它在投入生产时应该被删除。

您的导入语句是什么样子的?在controller
中,从user import user
,在user.py
中,从email import email
。用户和电子邮件是类。我还尝试导入电子邮件
import importlib
import sys
# Now import all your modules
import Common
importlib.reload(sys.modules['Common'])