Web2Py:不跟踪模块之间的变化
Web2Py: Not track changes between modules
我有两个协同工作的模块。
比如我有user.py和email.py。 user.py有验证注册的功能,email.py有发送确认邮件的功能。我在控制器中导入 user.py,然后 user.py 导入 email.py.
与:
from gluon.custom_import import track_changes
track_changes(True)
我在 user.py 中检测到变化,但在 email.py 中没有检测到变化。我试着把 track_changes
也放在 user.py 中,但它不起作用。
有什么我可以在不重启的情况下做的事情吗server/web2py?
Web2Py:2.16.1-stable+timestamp.2017.11.14.05.54.25(我尝试使用 *.exe 和 *.py)
OS: Windows 10 专业版
谢谢!
web2py 使用自定义导入程序,它首先尝试通过标准 Python 内置方法导入模块,然后仅当内置方法失败时才在应用程序的 /modules 文件夹中查找。只有通过此自定义导入过程找到的模块是可跟踪的。
因为 user.py 已经导入并且 email.py 与 user.py 在同一个文件夹中,Python 内置导入方法知道在同一个目录中查找email
模块在 user.py 文件中遇到 import email
时的文件夹。因此,web2py 自定义导入过程不会启动,因此不会跟踪模块。
我想这个行为可以改变,但现在,它是这样工作的,所以你的第二次导入不会被跟踪。
我在进行更改后无法重新导入模块时遇到了很多问题。 track_changes
从来没有为我工作过。最后,我将其添加到我的 db.py 文件中。
import importlib
import sys
# Now import all your modules
import Common
importlib.reload(sys.modules['Common'])
这对我来说效果很好。我知道它应该在投入生产时被删除。
我有两个协同工作的模块。
比如我有user.py和email.py。 user.py有验证注册的功能,email.py有发送确认邮件的功能。我在控制器中导入 user.py,然后 user.py 导入 email.py.
与:
from gluon.custom_import import track_changes
track_changes(True)
我在 user.py 中检测到变化,但在 email.py 中没有检测到变化。我试着把 track_changes
也放在 user.py 中,但它不起作用。
有什么我可以在不重启的情况下做的事情吗server/web2py?
Web2Py:2.16.1-stable+timestamp.2017.11.14.05.54.25(我尝试使用 *.exe 和 *.py)
OS: Windows 10 专业版
谢谢!
web2py 使用自定义导入程序,它首先尝试通过标准 Python 内置方法导入模块,然后仅当内置方法失败时才在应用程序的 /modules 文件夹中查找。只有通过此自定义导入过程找到的模块是可跟踪的。
因为 user.py 已经导入并且 email.py 与 user.py 在同一个文件夹中,Python 内置导入方法知道在同一个目录中查找email
模块在 user.py 文件中遇到 import email
时的文件夹。因此,web2py 自定义导入过程不会启动,因此不会跟踪模块。
我想这个行为可以改变,但现在,它是这样工作的,所以你的第二次导入不会被跟踪。
我在进行更改后无法重新导入模块时遇到了很多问题。 track_changes
从来没有为我工作过。最后,我将其添加到我的 db.py 文件中。
import importlib
import sys
# Now import all your modules
import Common
importlib.reload(sys.modules['Common'])
这对我来说效果很好。我知道它应该在投入生产时被删除。