给定此代码,我如何告诉python不要使用缓存的源或重新加载?

import importlib.util

spec = importlib.util.spec_from_file_location('test', '~/myfile.py')
test = importlib.util.module_from_spec(spec)
spec.loader.exec_module(test)

test.do_stuff()

当myfile.py的内容更改为未拾取时,我假设是因为它已缓存。调用importlib.invalidate_caches()并没有帮助,并且importlib.reload导致错误,指出sys.modules中没有测试

最佳答案

使用'~/myfile.py'将不起作用。
您必须使用相对路径,如下所示:'myfile.py'或像这样的绝对路径:'/home/your_name/python_code/myfile.py'

关于python importlib,如何使动态加载文件的缓存无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39213683/

10-09 20:15