importlib.import_module强制从文件加载
Python 在导入模块时会将模块缓存到 sys.modules
中,所以即使你删除了文件,只要模块名相同,后续导入都会使用内存中已有的模块,而不会重新从文件加载。要实现每次都从文件加载,可以考虑以下两种方法:
1. 删除缓存中的模块
在每次重新导入前,先从 sys.modules
中删除对应模块,这样 Python 就会再次从文件系统中加载模块。例如:
1 | import sys |
2. 使用 importlib.reload
如果模块已经导入,可以使用 importlib.reload
来强制重新加载模块的内容:
1 | import importlib |
注意: 如果文件已经被删除,那么尝试重新加载会抛出
ImportError
。确保在重新加载前文件存在或做相应的异常处理。
示例
1 | import importlib |
这样就能保证每次执行时,模块都会重新从文件系统加载更新后的内容,而不是使用内存中已缓存的版本。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.